我正在探索您在下图中看到的这些“神经元”之间的神经网络模拟。我遇到的困难是将每个神经元连接到它最近的邻居。我最初认为我可以通过元组解包来做到这一点,但它变得非常复杂。
def _connect_cells(self):
for source, target in zip(self.cells, self.cells[1:] + [self.cells[0]]):
nc = h.NetCon(source.soma(0.5)._ref_v, target.syn, sec=source.soma)
nc.weight[0] = self._syn_w
nc.delay = self._syn_delay
source._ncs.append(nc)
在这个示例代码片段中,元组解包被配置为使得第i个神经元连接到第i + 1个神经元,直到神经元n。当它到达神经元n时,第n个神经元将连接回第一个神经元。这种元组解包是针对类似于神经元环的网络结构。
然而,在我的例子中,结构是nxn个神经元的网格。下面的列表对应于神经元:
20 21 22 23 24
15 16 17 18 19
10 11 12 13 14
5 6 7 8 9
0 1 2 3 4
上面的元组解包对此不起作用,因为神经元 4 不应该连接到神经元 5。由于神经元的创建方式,该列表完全从左到右排列。我试图实现的确切连接如下图所示。可以手动完成(这需要很多代码),但是我怎样才能以与示例代码相同的方式使用for循环来处理它?