#神经网络 #遗传 #人工 #编码 #变异 #字符串 #直接

cge

直接编码神经网络通用遗传编码(CGE)的实现

3个不稳定版本

0.1.1 2022年6月2日
0.1.0 2022年5月29日
0.0.1 2022年5月13日

#277 in 机器学习

27 每月下载量
用于 2 crates

MIT/Apache

140KB
2.5K SLoC

cge

Crates.io Rust

一个使用通用遗传编码(CGE)创建、使用和修改人工神经网络的Rust库。有关针对嵌入式环境和性能关键用例的类似库,请参阅const_cge。有关创建与CGE兼容的神经网络的库,请参阅eant2

需要Rust 1.43或更高版本。

特性

cge旨在为仅直接编码情况下的CGE神经网络交互提供完整解决方案。它目前提供以下功能

  • 从文件和字符串中加载和保存神经网络,以向后兼容和可扩展的格式
  • 评估神经网络,以及保存、加载和重置其内部状态
  • 通过结构和权重变异修改神经网络
  • 基因和变异有效性检查

快速入门

将此添加到您的Cargo.toml中

[dependencies]
cge = "0.1"

然后,从文件加载并使用现有的神经网络

use cge::{Network, WithRecurrentState};

// `extra` is any user-defined data stored alongside the network
let (mut network, metadata, extra) =
    Network::<f64>::load_file::<(), _>("network.cge", WithRecurrentState(true)).unwrap();

println!("description: {:?}", metadata.description);
println!("num inputs, outputs: {}, {}", network.num_inputs(), network.num_outputs());
println!("{:?}", network.evaluate(&[1.0, 2.0]).unwrap());

network.clear_state();

println!("{:?}", network.evaluate(&[2.0, 0.0]).unwrap());

有关更多信息,请参阅文档示例

贡献

欢迎贡献!您可以通过报告与库相关的任何错误或问题、添加文档、修复错误或添加功能来做出贡献。

除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中的任何贡献,将按照以下方式双重许可,不附加任何额外条款或条件。

许可证

根据以下任一许可证授权

Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

任选其一。

依赖关系

~0.5–1.3MB
~28K SLoC