1 个不稳定版本
0.1.0 | 2023 年 7 月 17 日 |
---|
#468 in 机器学习
51KB
1K SLoC
puffpastry
puffpastry
是一个非常基础的具有数学表示一致性重点的前馈神经网络库。它可以用于创建和训练简单的模型。
使用方法
puffpastry
的使用方法与 keras 非常相似 - 堆叠层并对训练数据进行拟合。
学习 XOR
// from_layers(layers: Vec<impl Layer, loss: Loss) -> Model
let mut model : Model<f64> = Model::from_layers(vec![
Dense::from_size(2, 2, Activation::Sigmoid),
Dense::from_size(2, 1, Activation::None)
],
Loss::MeanSquaredError
);
let train_inputs = vec![
Tensor::column(vec![0.0, 0.0]),
Tensor::column(vec![1.0, 0.0]),
Tensor::column(vec![0.0, 1.0]),
Tensor::column(vec![1.0, 1.0]),
];
let train_outputs = vec![
Tensor::column(vec![0.0]),
Tensor::column(vec![1.0]),
Tensor::column(vec![1.0]),
Tensor::column(vec![0.0]),
];
// fit(&mut self, inputs, outputs, epochs, learning_rate) -> Result
model.fit(train_inputs, train_outputs, 100, 1.2).unwrap();
// evaluate(&self, input: Tensor) -> Result<Tensor>
model.evaluate(&Tensor::column(vec![1.0, 0.0])).unwrap()
// stdout: Tensor {shape: [1], data: [0.9179620463347642]}
功能
激活函数:[softmax, relu, sigmoid, linear]
损失函数:[categorical cross entropy, mean squared error]
层:[dense]
路线图
- 卷积层(一般层重构)[75%]
- 文档
- 构建 GAN 的工具
依赖关系
~1.4–2MB
~25K SLoC