Catalog npm
Back to packageRELEASE DETAILS

0.2.2

npm

3net.js

A simple library for implementing 3 layer neural networks

3net3netjsdatalearningmachinemultilayernetworkneuralperceptronmachine learningneural network
Published4 Sept 2015
Direct dependencies1
Transitive dependenciesNot calculated

README

Current package documentation

3net.js

A simple library for implementing 3 layer neural networks

NPM

Initialization

var three_net = require('3net.js');     // Install with 'npm install 3net.js'
var inputLayer = 400;
var hiddenLayer = 25;
var outputLayer = 10;
var neuron = "rectifier";               // The activation function. Can be "rectifier", "sigmoid", or "tanh"

//If neuron is not specified, the default sigmoid will be used
var net = three_net.createNet(inputLayer, hiddenLayer, outputLayer, neuron);  

Online training

// If options is not specified, the default values will be used.
options = {
    "learning_rate": 0.3,   // Learning rate for gradient descent. The default is 0.5
    "dropconnect": 0.5,     // DropConnect parameter to prevent overfitting. Must be a value between 0 and 1. It represents the chance that a weight will be randomly set to 0 during training. The default is 0
    "regularization": 0.3,  // L2 regularization parameter to prevent overfitting. The default is 0
};

// Data and label must be an array matching the dimensions of the input layer and output layer
var success = net.train(data, label, options);

//Returns true if training was successful
if (success) console.log("training complete");  

Training on a set

// If options is not specified, the default values will be used.
options = {
    "iters": 100,               // Maximum amount of time stochastic gradient descent will run. The default is 1000
    "learning_rate": 0.5,       // Learning rate for gradient descent. The default is 0.5
    "regularization": 1,        // L2 regularization parameter to prevent overfitting. The default is 0
    "dropconnect": 0.5,         // DropConnect parameter to prevent overfitting. Must be a value between 0 and 1. It represents the chance that a weight will be randomly set to 0 during training. The default is 0
    "change_cost": 0.00001,     // If the change in cross entropy cost between iterations is less than this, the net will stop training. The default is 0.00001
};

// Data and label are arrays containing the training set
var success = net.trainSet(dataset, labels, options);

//Returns true if training was successful
if (success) console.log("training complete");  

Predicting

net.predict(data);  // Returns an array with the output layer activations

Importing and exporting

var savedNet = net.exportNet();                 // Exports as JSON
var copiedNet = three_net.importNet(savedNet);  // Imports from JSON

Example: Training an XOR

var three_net = require('3net.js');
var net = three_net.createNet(2, 3, 1);

inputs = [[0, 0], [0, 1], [1, 0], [1, 1]];
labels = [[0], [1], [1], [0]];

// Uses default options since it is not specified
net.trainSet(inputs, labels);

console.log(net.predict([1, 1])); // Outputs 0.020773462753469724
console.log(net.predict([1, 0])); // Outputs 0.9836636258293651

// Output values be slightly different when you try it because of random intialization

An online training example can be found here

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 1

Native requirements
1 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
mathjs
Environment
{
  "local_name": "mathjs",
  "alias": false,
  "peer_metadata": null
}
^2.1.1runtime

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "fb125148cf10a0b16d1438bbe73ab147ef2eb84c",
  "tarball": "https://registry.npmjs.org/3net.js/-/3net.js-0.2.2.tgz",
  "integrity": "sha512-roRTt0v+UVoa7vsh+Spf3YVuWseOGmKycj2+avasXfnMKydGxufvIhxBJ/K7Y017uC7whJuDpuER35Rf1vsGFA==",
  "signatures": [
    {
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
      "sig": "MEUCICPlFKAyxjIgpNadOjoPlOnN2pYppNTAE0yKFM73i4a6AiEAyOfqBEmKihjDGzM3DILGpYGJt84g2Q9RCIlvWYFy140="
    }
  ]
}

Repository

PENDING
muntashir/3net.js

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:49 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:613cc2f83e1de37a8fd8b2dcfdfcaca3bb67f00d317ef7cf6d8682bc49e44673

Other collected versions

0.2.44 Sept0.2.34 Sept0.2.128 Aug0.2.025 Aug0.1.018 Aug0.0.418 AugView all collected versions →