I released the first version of Encog-Node in early 2012, and the latest version v0.3.0 is now available from NPM - https://www.npmjs.com/package/encog-node, and is recommended for anyone who wants to add lightweight, simple machine learning capabilities to their Node.js applications.
GitHub user Rui Cardoso contributed a lot for the latest release, with restructuring and cleaning up the codebase, and adding more examples.
You can install it by simply running,
npm install encog-node
in your node application.Here's an example code to get a simplest neural network working on Node.js
var ENCOG = require('encog-node');
var XOR_INPUT = [
[0, 0],
[1, 0],
[0, 1],
[1, 1]
];
var XOR_IDEAL = [
[0],
[1],
[1],
[0]
];
var network = ENCOG.networks.basic.create([
ENCOG.layers.basic.create(ENCOG.activationFunctions.sigmoid.create(), 2, 1),
ENCOG.layers.basic.create(ENCOG.activationFunctions.sigmoid.create(), 3, 1),
ENCOG.layers.basic.create(ENCOG.activationFunctions.sigmoid.create(), 1, 0)
]);
network.randomize();
var train = ENCOG.trainers.propagation.create(network, ENCOG.errorFunctions.linear.create(), XOR_INPUT, XOR_IDEAL, "RPROP", 0, 0);
var iteration = 1;
do {
train.iteration();
var trainResultString = "Training Iteration #" + iteration + ", Error: " + train.error;
console.log(trainResultString + "\n");
iteration++;
} while (iteration < 1000 && train.error > 0.01);
var input = [0, 0];
var output = [];
console.log("Testing neural network: \n");
for (var i = 0; i < XOR_INPUT.length; i++) {
output = network.compute(XOR_INPUT[i]);
var testResultString = "Input: " + String(XOR_INPUT[i][0]) +
" ; " + String(XOR_INPUT[i][1]) +
" Output: " + String(output[0]) +
" Ideal: " + String(XOR_IDEAL[i][0]);
console.log(testResultString + "\n");
}
Which will output,
>node index.js
Training Iteration #1, Error: 0.33306242864283925
Training Iteration #2, Error: 0.30684930995968274
Training Iteration #3, Error: 0.2816136873215376
Training Iteration #4, Error: 0.2614275886340755
..........
..........
..........
Training Iteration #44, Error: 0.010807377445510056
Training Iteration #45, Error: 0.005187735146628829
Testing neural network
Input: 0 ; 0 Output: 0.000056493461985276595 Ideal: 0
Input: 1 ; 0 Output: 0.9995493238264583 Ideal: 1
Input: 0 ; 1 Output: 0.9987763730629743 Ideal: 1
Input: 1 ; 1 Output: 0.08974271940228784 Ideal: 0
More examples and instructions available at the NPM Page of the Encog-Node package.
And, you can get the source code from the GitHub page.
Feel free to use, test, improve, and contribute to the code.
Related links:
- The Encog Project: http://www.heatonresearch.com/encog/
- The NPM Page for Encog-Node: https://www.npmjs.com/package/encog-node
- The GitHub Page for Encog-Node: https://github.com/Thimira/encog-node
Build Deeper: The Path to Deep Learning
Learn the bleeding edge of AI in the most practical way: By getting hands-on with Python, TensorFlow, Keras, and OpenCV. Go a little deeper...
Get your copy now!
No comments:
Post a Comment