Backy is a neural network which is using the backpropagation algorithm. (Written in Googles Dart). Please report all errors you can find to me.
The Neuron The neuron defines how the output is computed and in what range...
It can be instanciated with any number of layer dimensions. For example: [2, 3, 1] which produces a net with 3 layers. The input layer has two inputs and the output layer has 1 output neuron. The hidden layer has 3 neurons.
Use the "train"-method to tell the net what you expect from a certain input. net.train(<input>, <expected>);
e.g. train an XOR network:
net.train([-1, -1], [ 1]); net.train([-1, 1], [-1]); net.train([ 1, -1], [-1]); net.train([ 1, 1], [ 1]);
Once the network is trained, you can use it and it will return the output:
<expected> = net.use(<input>); print(net.use([-1, 1])); // prints probably: [-.9988, .9988]
The network needs usually many trainingsteps in orderto find the right weights and therefore the solution. Use the trainer in order to train backy more comfortably.
// 1. var neuron = new TanHNeuron(); // returnes floatingpoint values between -1 and 1 var student = new Backy([2, 2, 1], neuron); var trainer = new Trainer(backy: student, maximumReapeatingCycle: 200, precision: .1); // 2. Add the pattern whcih the network should learn trainer.addTrainingCase([-1,-1], [-1]); trainer.addTrainingCase([-1, 1], [-1]); trainer.addTrainingCase([ 1,-1], [-1]); trainer.addTrainingCase([ 1, 1], [ 1]); // 3. train all the traininCases up to 300 times and be satisfied with a precision of .1 print(trainer.trainOnlineSets()); // prints number loops it took to learn all trainingcases // 4. After that you can use the neural network print(student.use([-1,-1])); print(student.use([-1, 1])); print(student.use([ 1,-1])); print(student.use([ 1, 1]));
Add this to your package's pubspec.yaml file:
dependencies: backy: "^0.2.1"
You can install packages from the command line:
$ pub get
$ flutter packages get
Alternatively, your editor might support
pub get or
flutter packages get.
Check the docs for your editor to learn more.
Now in your Dart code, you can use:
|0.2.1||Sep 1, 2013|
|0.2.0||Sep 1, 2013|
|0.1.0||Aug 24, 2013|
We analyzed this package on Jun 12, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Detected platforms: Flutter, web, other
No platform restriction found in primary library
Changelog entries help clients to follow the progress in your code.
Homepage is not helpful.
homepageproperty: create a website about the package or use the source repository URL.
Package is too old.
The package was released more than two years ago.
Package is pre-v1 release.
While there is nothing inherently wrong with versions of
0.*.*, it usually means that the author is still experimenting with the general direction API.
The description is too long.
Search engines will display only the first part of the description. Try to keep it under 180 characters.
Fix analysis and formatting issues.
Analysis or formatting checks reported 8 hints.
Similar analysis of the following files failed:
Maintain an example.
Create a short demo in the
example/directory to show how to use this package. Common file name patterns include:
example.dartor you could also use