首页
企业/组织
新建镜像项目
新建托管项目
登录
注册
陈靖宇
/
SNNGo
分享
Activities
3
任务
Resources
Repositories
7
Pull Requests
Roadmap
Calendar
Gantt
版本库
查看Git使用指南
如操作版本库需要认证,请使用您的邮箱
7 提交
贡献统计
启智开源许可证
分支
1
master
ZIP下载
克隆网址
复制
GDUT-ly
提交于
about 1 month
前 :fix bug
.idea
CreateData
Izhikevich
TcpTransport
.gitignore
LICENSE
README.md
SimulatorRun.go
导出统计结果:
各用户提交统计信息
# SNNGo [TOC] ## 1、介绍 SNNGo是基于Go语言的后台脉冲神经网络模拟器。其可以接受来自前端PySNNGo传送过来的神经网络拓扑以及网络数据,对所设定的时间周期,时间步长进行脉冲神经网络的模拟并将模拟数据返回前端。 ## 2、环境 Go 1.15.1 最佳 ## 3、环境配置 ### 3.1 Go语言环境 #### 3.1.1 Windows系统 该项目所使用的Go语言版本是1.15.1 **(1)Go语言官网** > https://golang.org/ **(2)谷歌中国官网**(访问速度快) > https://golang.google.cn/ **(3)安装** 选择其中一个版本go进行下载安装,项目所使用的Go语言版本是windows64位的1.15.1版本,所以安装包名如下: > go1.15.1.windows-amd64.msi **(4)环境变量** 安装完毕后,进行环境变量的配置。 GOROOT:在系统环境变量PATH中添加GOROOT系统变量 > 变量名:GOROOT > > 变量值:Go语言安装目录,例如 D:\Go\ GOPATH:自创建一个Go工作目录,在系统环境变量PATH中添加GOPATH系统变量 > 变量名:GOPATH > > 变量值:Go语言工作目录,例如 D:\Go\GoWorkSpace 当在终端输入go命令时,进入到go终端则安装成功。 **(5) 第三方依赖包安装** 项目中Go的第三方依赖包只有一个:gojsonq,可以用以下命令下载得: > go get github.com/thedevsaddam/gojsonq #### 3.1.2 Linux系统 **(1)安装** 在终端中输入下载go命令,默认下载的是上次apt更新后最新版: > sudo apt-get install golang-go 如果无法在终端下载,可以到官网https://golang.google.cn/下载压缩安装包 > go1.15.1.linux.amd64.tar.gz **(2)环境变量** 安装完毕后,进行环境变量的配置,才可以在全局使用go命令。 在系统环境变量配置文件中添加GO环境变量:在配置文件**`~/.bashrc`** 或者 **`/etc/profile`**末尾加入以下语句: > export GOROOT=/usr/local/go #GOROOT是系统上安装Go软件包的位置。 > > export GOPATH=/home/hadoop/GOPATH #GOPATH是工作目录的位置。 > > export PATH=$GOPATH/bin:$GOROOT/bin:$PATH 添加后重启配置文件**`source ~/.bashrc`**或**`source /etc/profile`** 当在任意位置打开终端输入go version命令时,显示go语言的版本信息则安装且配置成功。 **(3) 第三方依赖包安装** 项目中Go的第三方依赖包只有一个:gojsonq,可以在终端使用命令下载得: > go get github.com/thedevsaddam/gojsonq ### 3.2 SNNGo环境 目前来说该项目仍在起步阶段,后台运行部分与前端运行部分需要在同一台机器上运行,部署Go语言环境如下所示: (1)进入[SNNGo](https://code.ihub.org.cn/projects/4407/repository/SNNGo)项目目录当中,下载整个项目文件。 (2)将SNNGo项目文件解压至任意目录当中,推荐放置在GOPATH(也就是Go语言工作目录)中。 (3)测试运行在项目目录中打开终端,运行命令:`go run SimulatorRun.go`。若显示`模拟服务器已开启`,则说明配置成功。 ## 4、目录结构 SNNGo:. │ SimulatorRun.go │ ├─**CreateData** │ CreateData.go │ ├─**Izhikevich** │ InitNeurons.go │ InitVariables.go │ IZKModel.go │ IZKneuron.go │ IZKUpdate.go │ Variables.go │ └─**TcpTransport** TcpTransport.go ## 5、项目说明 **模块说明** SNNGo主要有三个模块:数据创建模块、神经元模拟模块、数据传输模块。 > 数据创建模块(CreateData):根据前端传入的部分参数,创建所需的实际模拟数据。例如模拟丘脑输入信 号高斯随机数生成。 > 神经元模拟模块(Izhikevich):单个神经元根据参数更新状态。 > 数据传输模块(TcpTransport):接受前端数据,将模拟数据发送回前端。 **模拟思路** 该项目在实现神经元模拟更新时,利用了Go语言中的轻量级线程goroutine。 每一个神经元绑定了一个协程,一个周期内的网络更新对于神经元来说是并行的。神经元与神经元之间的通信采用Go语言中channel数据类型。例如神经元在向其他神经元发送脉冲数据时,会向神经元结构体中一个channel类型的成员变量Receive输入数据,等到神经元处理阶段时再从其Receive中拿出。 一个神经元的更新分为三个阶段:接收阶段、处理阶段、发送阶段。神经元的每个阶段之间是串行的,但在阶段中是并行的。并行时,所有神经元都应该处于同一个阶段当中,若有神经元提前完成该阶段任务,则需等待其他神经元完成,才能进行下一个阶段。 ## 6、开启模拟服务器 进入到SNNGo目录当中,执行以下控制台命令: ```python go run SimulatorRun.go ``` 当显示`模拟服务器已开启`时,说明开启成功,监听等待前端数据发送。
Loading...