Как объявить соединения для каждого нейрона в модели pytorch?

#neural-network #pytorch #biological-neural-network

#нейронная сеть #pytorch #биологическая-нейронная-сеть

Вопрос:

Я хочу создать беспорядок, похожий на мозг:

  • У нас есть входной тензор I длины n и выходной тензор O длины p
  • Между ними у нас есть K слои «пересечения»
  • На уровнях пересечения нейроны делятся своими значениями в это время со случайным подмножеством «близких» нейронов ( - диапазон c ). В виде w_i *current_neuron_val
  • и J слои «создания» новые нейроны создаются из набора или повторно подключенных «близких» нейронов ( - диапазон c ). закрытые нейроны не переходят в более глубокие слои.

Можем ли мы сделать такую вещь с PyTorch, чтобы такая модель была обучаемой?

Ответ №1:

Вы должны создать свой собственный класс на основе nn.Module и выполнить реализацию для прямого и обратного хода вручную. Я предполагаю, что эти соединения, похожие на беспорядок в мозге, вы должны контролировать с помощью маркировки объектов внутри тензора (он же «0» — нет соединения). Поскольку все фреймворки используют тензоры — они по умолчанию полностью подключены, и другим поведением должно быть наведение в коде.

смотрите код bindsNET — как они реализуют модель, подобную шипу, с использованием pytorch