puffpastry

puffpastry is a very basic feedforward neuron network library with a focus on parity with mathematical representations. It can be used to create and train simple models.

Usage

puffpastry is used very similarly to keras - stack layers and fit to training data.

Learning XOR

```rust // fromlayers(layers: Vec Model let mut model : Model = Model::fromlayers(vec![ Dense::fromsize(2, 2, Activation::Sigmoid), Dense::fromsize(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, learningrate) -> Result model.fit(traininputs, train_outputs, 100, 1.2).unwrap();

// evaluate(&self, input: Tensor) -> Result model.evaluate(&Tensor::column(vec![1.0, 0.0])).unwrap() // stdout: Tensor {shape: [1], data: [0.9179620463347642]} ```

Features

Activation functions: [softmax, relu, sigmoid, linear]
Loss functions: [categorical cross entropy, mean squared error]
Layers: [dense]

Roadmap

  1. Convulational Layers (Layer rework in general) [75%]
  2. Documentation
  3. Tools to build GANs