本文介绍: 观察每一个图的CSR的存储,你就会发现,对于一个名为gid神经元,如果他的xadj[gid]<xadj[gid+1],那么该神经元的后神经元就一定存在本地。明显,对于神经元来说,很容易将其进行分区,但是对于突触来说就没那么简单了,有些文献建议突触和后神经元存储在一起,邻接表就变成上图的格式。将整体网络构成见一个邻接表,突触神经元作为类分别存储,所以当一个神经元发射脉冲时,很容易的将脉冲传输突触指向的后神经元。对于第一个问题,我想出一种方案,能够解决一个神经元的后神经元是否本地

我之前实现仿真完全基于下图设计

将整体的网络构成见一个邻接表,突触和神经元作为类分别存储,所以当一个神经元发射脉冲时,很容易的将脉冲传输突触指向的后神经元。但是在分布式方丈中,由多个进程仿真整体的网络如图所示

 

那么整体的邻接表就变成了

 

明显,对于神经元来说,很容易将其进行分区,但是对于突触来说就没那么简单了,有些文献建议将突触和后神经元存储在一起,邻接表就变成上图的格式。那当一个进程的神经元发生脉冲时,那么传图过程就变为了

 可以看到问题的难点有两个

  1. 如何判断一个脉冲的后神经在是本进程还是其他进程
  2. 在我么的设计中,突触是和后神经元存储在一起的,那么当突触没有前身神经元的索引如何建立脉冲、突触、和后神经元的关系呢。

对于第一个问题,我想出一种方案,能够解决一个神经元的后神经元是否本地如图所示

 观察每一个图的CSR的存储,你就会发现,对于一个名为gid的神经元,如果他的xadj[gid]<xadj[gid+1],那么该神经元的后神经元就一定存在本地。难点就是如何判断该神经元的后神经元是否存在于别的进程。对于本地脉冲判断还是很容易的,但是远程脉冲似乎出现问题。讨论一下一个神经的后神经元的情况:

那么我们针对这一种无法判断的情况具体分析

我们知道xadj[gid+1]-xadj[gid]=该神经元的后神经元的个数,又因为(global_xadj[gid+1]-global_xadj[gid])>=(xadj[gid+1]-xadj[gid]),那么仅仅需要考虑,两种情况:

  1. global_xadj[gid+1]-global_xadj[gid]) =(xadj[gid+1]-xadj[gid]),这和第二种可能相同。
  2. global_xadj[gid+1]-global_xadj[gid]) >(xadj[gid+1]-xadj[gid]), 在这种情况下就一定满足即存在本地脉冲,也存在远程脉冲。

于是对于第一种难点我们解决了,但是第二种,突触的实例存储,以及远程脉冲如何查找突触,我暂时还没有好的思路。先这样吧,回来我在翻看一些资料

原文地址:https://blog.csdn.net/qq_39591612/article/details/134713160

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_18043.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注