1个不稳定版本
0.4.0 | 2021年4月25日 |
---|
#528 in Machine learning
29KB
559 代码行,不含注释
siarne
一个用于快速模拟人工神经元的库。
网络
网络是一圈神经元,其中每个神经元都与其自身和其他0个或多个相邻的神经元相连。
在每个 tick
时,每个神经元的输入(32位有符号整数)与其阈值进行比较,如果大于阈值,则神经元将其效果(8位有符号整数)添加到其连接端点的神经元输入。
网络参数是效果、阈值和提取输入和输出的神经元索引。有调整这些参数的实用工具(训练),目前仅实现了进化策略。
优化
主要的评估代码是自动向量化,因此在许多平台上应该运行得非常快。
例如,在i7-4790上运行的network_tick
基准测试在4096个神经元和每个神经元1024个连接的情况下,每个tick大约需要370微秒。
如果使用target-cpu=native
运行基准测试,则每个tick的时间将下降到大约200微秒。
目前评估代码是单线程的,未来的工作包括研究单个网络内的多线程机会。
对于训练代码,性能被认为不那么重要,例如,随机数质量优先。
依赖项
~1.3–2MB
~35K SLoC