原文:Juggernaut
作者:Afshin Mehrabani
翻译:雁惊寒
Juggernaut是一款由Rust语言实现的试验性神经网络。
![](http://juggernaut.rs/static/images/art.png)
示例
要使用Juggernaut来设置一个简单的神经网络?
这个示例创建一个隐藏层的随机二进制操作网络:
fn main() {
let dataset = vec![
Sample::new(vec![0f64, 0f64, 1f64], vec![0f64]),
Sample::new(vec![0f64, 1f64, 1f64], vec![0f64]),
Sample::new(vec![1f64, 0f64, 1f64], vec![1f64]),
Sample::new(vec![1f64, 1f64, 1f64], vec![1f64])
];
let mut test = NeuralNetwork::new(dataset);
let sig_activation = Sigmoid::new();
// 1st layer = 2 neurons - 3 inputs
test.add_layer(NeuralLayer::new(2, 3, sig_activation));
// 2nd layer = 1 neuron - 2 inputs
test.add_layer(NeuralLayer::new(1, 2, sig_activation));
test.error(|err| {
println!("error({})", err.to_string());
});
test.train(10000);
let think = test.evaluate(Sample::predict(vec![1f64, 0f64, 1f64]));
println!("Evaluate [1, 0, 1] = {:?}", think.get(0, 0));
}
而输出think
则是网络训练后的预测结果。
文档
构建
要构建demo,请执行:
cargo build --example helloworld --verbose
然后运行编译出来的文件:
./target/debug/examples/helloworld
测试
安装Rust 1.x并执行:
cargo test
作者
Afshin Mehrabani (afshin.meh@gmail.com) 和 贡献者们
FAQ
如何贡献
Fork项目,然后发送特定部分的PR和单元测试。
为什么叫“Juggernaut”?
Juggernaut是DOTA2中的英雄,很强大,我喜欢这个英雄。
授权许可
GNU General Public License v3.0