5个版本
0.2.3 | 2023年3月15日 |
---|---|
0.2.2 | 2023年3月14日 |
0.2.1 | 2023年3月3日 |
0.2.0 | 2023年3月2日 |
0.1.0 | 2023年3月1日 |
#670 in 机器学习
每月 25 次下载
29KB
439 行
NNRS - Rust神经网络库
NNRS是一个用于创建和操作前馈神经网络的Rust库。它提供了一组用于构建和操作神经网络的工具,包括创建节点和边、设置输入和触发网络以生成输出的工具。
注意:此库仍在开发中,尚未准备好使用。
安装
要使用NNRS,只需使用Cargo将其添加到您的Rust项目中
cargo add nnrs
用法
有关最新的使用信息,请克隆存储库并运行 cargo doc --open
,或在docs.rs上查看文档。
局限性
目前,NNRS不包含训练功能。您可以使用此库从预训练网络生成输出。
路线图
- 基本部分
- 生成输出
- 序列化
- 训练(NEAT?)
许可证
NNRS采用AGPLv3许可证。有关更多信息,请参阅LICENSE
文件。
lib.rs
:
nnrs
一个用Rust编写的简单、最小化的神经网络库。不包括训练功能
示例
use nnrs::{network::Network, node::Node, edge::Edge, layer::LayerID, activationfn::ActivationFn};
let mut network = Network::create(1, 1, ActivationFn::Linear).unwrap();
let mut output: Vec<f64> = Vec::new();
let layer_id = network.add_layer();
let input_node_id = network.input_node_ids().pop().unwrap();
let hidden_node_id = Node::create(&mut network, layer_id, 0.2).unwrap();
let output_node_id = network.output_node_ids().pop().unwrap();
let edge_input_to_hidden = Edge::create(&mut network, input_node_id, hidden_node_id, 1.3).unwrap();
let edge_hidden_to_output = Edge::create(&mut network, hidden_node_id, output_node_id, 1.5).unwrap();
network.fire(vec![0.8], &mut output).unwrap();
assert_eq!(output, vec![((0.8 * 1.3) + 0.2) * 1.5]);
依赖项
~3.5–5.5MB
~112K SLoC