backy 0.2.1

  • Installing
  • Versions
  • 29


Backy is a neural network which is using the backpropagation algorithm. (Written in Googles Dart). Please report all errors you can find to me.

How to

The Neuron The neuron defines how the output is computed and in what range...

The Neural Network:

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.

Train the network

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]);

Use the Network

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]

A working example:

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. Imagine the trainer as a personal trainer for a student.
  2. You tell the trainer what he should train the student.
  3. And he will repeat the training until the student produces the expected answers, or until a maximum of trainingrounds has been exceeded.
// 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]));

1. Depend on it

Add this to your package's pubspec.yaml file:

  backy: "^0.2.1"

2. Install it

You can install packages from the command line:

with pub:

$ pub get

with Flutter:

$ flutter packages get

Alternatively, your editor might support pub get or packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:backy/backy.dart';
Version Uploaded Documentation Archive
0.2.1 Sep 1, 2013 Go to the documentation of backy 0.2.1 Download backy 0.2.1 archive
0.2.0 Sep 1, 2013 Go to the documentation of backy 0.2.0 Download backy 0.2.0 archive
0.1.0 Aug 24, 2013 Go to the documentation of backy 0.1.0 Download backy 0.1.0 archive


We analyzed this package on Mar 5, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0-dev.31.0
  • pana: 0.10.3


Describes how popular the package is relative to other packages. [more]
0 / 100
Code health derived from static analysis. [more]
98 / 100
Reflects how tidy and up-to-date the package is. [more]
0 / 100
Overall score:
Weighted score of the above. [more]
Learn more about scoring.


Detected platforms: Flutter, web, other

No platform restriction found in primary library package:backy/backy.dart.


  • Maintain

    Changelog entries help clients to follow the progress in your code.

  • 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.

  • Maintain an example.

    Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use backy.dart.

  • Fix issues reported by dartanalyzer or dartfmt.

    dartanalyzer or dartfmt reported 5 hints.

    Run dartfmt to format lib/backy.dart.

    Run dartfmt to format lib/layer.dart.

    Similar analysis of the following files failed:

    • lib/neuron.dart (hint)
    • lib/trainer.dart (hint)
    • lib/weight.dart (hint)