nengo的树状计算原语

nengo-bio的Python项目详细描述


nengo bio logopi版本生成状态=<模仿咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪咪

Nengobio生物学(更多)合理的Nengo模型

<阻塞率>

9888;警告:此项目正在进行中。此处描述的所有内容,包括项目名称和API,都可能更改。

Nengobio是Nengo的附加库。Nengo被科学家用来构建神经生物学系统的详细模型。然而,在某种程度上,nengo和底层的神经工程框架有限制,限制了所创建网络的生物学合理性。nengobio通过实现以下功能解除了某些限制:

  • 戴尔原则(:带复选框的投票框:完全实现
    虽然可以绕过这个限制,但nengo通常不会明确地将神经元标记为兴奋性或抑制性。这意味着单个神经元可以兴奋性和抑制性地连接到后神经元,这取决于权重求解器计算出的权重符号。Nengobio将神经元标记为兴奋性或抑制性,并在求解连接权重时解释这一点。
  • 偏置电流消除(:带复选框的投票框:完全实现
    神经工程框架假设每个神经元连接到一个恒定的偏置电流源。这种偏置电流被用来使亲和神经元的调谐曲线多样化,但从生物学的角度来看有点不切实际。Nengobio通过求解当前空间中的突触权重来消除偏置电流,有效地从预种群状态解码偏置电流。
  • 对树状计算的支持(:带复选框的投票框:完全实现
    树突非线性在中枢神经系统的信息处理中起着关键作用,可以系统地利用树突非线性进行非线性、多变量的计算。nengobio通过允许任意数量的神经元集合作为连接中的前置对象,向nengo添加了对树突计算的支持。
  • 支持基于电导的突触以及具有任意被动树突树的神经元有计划) 树状结构的计算依赖于树状结构和树状结构的非线性效应。Nengobio为Nengo添加了对任意被动多compartment神经元模型的支持。

安装Nengobio

依赖项:nengobio需要python 3,依赖于numpy>;=1.16.3scipy>;=1.2.0cvxopt>;=1.2nengo>;=3.0.dev0

通过运行克隆此存储库

git clone https://github.com/astoeckel/nengo_bio

然后,您可以在nengo_bio存储库中运行以下命令来安装该软件包

pip3 install -e .

这将自动安装所有依赖项。请注意,nengobio当前需要最新的开发版本nengo,必须单独安装。

使用Nengobio

;请参阅示例笔记本

假设您知道如何使用nengo,那么使用nengobio应该非常简单。只需将以下内容添加到导入列表中

importnengo_bioasbio

并将nengo.ensemble替换为bio.ensemblenengo.connection替换为bio.connection(如适用)。

生物集成

bio.ensemble类的作用类似于正常的nengo集成,但有两个附加参数:p_excp_inh。这些参数描述了群体中兴奋/抑制神经元的相对数量。请注意p_excp_inh必须求和为一。只有当一个系综是预对象时,这些参数才相关。

注意:神经元在构建时将被分配一个突触类型。如果设置了p_excp_inh中的任何一个,则每个神经元要么是兴奋性的,要么是抑制性的。如果没有p廑excp廑inh,合奏的表现将与正常的nengo合奏一样。

警告:bio.ensemble可以与normalnengo.connection类一起使用。只有在使用bio.connection时,才会考虑到abio.ensemble中神经元的兴奋性/抑制性(见下文)。

示例

例1:一个由兴奋性神经元组成的整体

ens_exc=bio.Ensemble(n_neurons=101,dimensions=1,p_exc=1.0)

例2:一个完全由抑制神经元组成的集合

ens_inh=bio.Ensemble(n_neurons=101,dimensions=1,p_inh=1.0)

例3:一个由80%兴奋性神经元和20%抑制性神经元组成的集合(两条线都是等价的):

ens_mix=bio.Ensemble(n_neurons=101,dimensions=1,p_exc=0.8)ens_mix=bio.Ensemble(n_neurons=101,dimensions=1,p_inh=0.2)

生物连接

abio.connectionconnection连接到单个目标集成。它将自动解释分配给每个神经元的突触类型。

显著参数

  • pre:这可以是单个pre-population,也可以是一个pre-population的元组。预填充表示的值的维数将被叠加。

  • 解码偏差(默认值):如果后神经元偏差电流将从预种群中解码,而不是假设为常数。对于除第一个bio.connection连接之外的任何连接,将其设置为false,目标是相同的post population。

  • 解算器(默认qpsolver()):来自nengo_bio.solvers扩展解算器实例。扩展求解器可以求解电流并考虑神经元参数。

示例

示例1:在考虑神经元/突触类型和解码偏置电流的情况下,ens-aens-b之间的简单通信信道:

bio.Connection(ens_a,ens_b)

示例2:2d通信信道,其中ens_aens_b表示一维值,ens_c表示二维值。

bio.Connection((ens_a,ens_b),ens_c)

示例3:线性"树突计算"

bio.Connection((ens_a,ens_b),ens_c,function=lambdax:np.mean(x))

引用

此库中使用的技术在本arxiv预印本中有更详细的描述:https://arxiv.org/abs/1904.11713。如果你能引用这篇文章以防在已发布的模型中使用此库。

啊!

许可证

YYY11

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使Eclipse在其控制台中显示最顶层的异常,而不是完整的堆栈跟踪   java如何为一个组件提供多个DropTargetListener?   在Eclipse包资源管理器中,有些文件不可见?   java在Spring Boot中使用@Bean配置设置类属性的默认值   在JTextPane中使用#链接的Java HTML?   java当应用程序打开时,如何将通知内容发送给活动?   java Android ROOM如何编写包含多个实体的查询,这是在哪里完成的?   Play Framework的java登录/注销问题?   java如何从安卓 Cordova/Phonegap调用javascript函数   JavaFX8如何在Java8中显示上次修改的LocalDateTime?   javabean验证中的多个约束注释   java使用JSTL设置请求属性   java在Android启动的服务中调用函数   用于检查xml是否包含键和值的java XPath表达式   在java游戏中使用斜坡因子挥杆   Java文件:尝试使用FileWriter将结果附加到已经存在的文件中   bootclasspath Java Xbootclasspath,相对路径   java我如何让这个“怪物战斗模拟器”工作?   swing使用动作侦听器隐藏和显示java桌面应用程序