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 次下载

AGPL-3.0

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