UNPKG

synaptic

Version:

architecture-free neural network library

46 lines (37 loc) 905 B
import Network from '../Network'; import Trainer from '../Trainer'; import Layer from '../Layer'; export default class Hopfield extends Network { constructor(size) { super(); var inputLayer = new Layer(size); var outputLayer = new Layer(size); inputLayer.project(outputLayer, Layer.connectionType.ALL_TO_ALL); this.set({ input: inputLayer, hidden: [], output: outputLayer }); this.trainer = new Trainer(this); } learn(patterns) { var set = []; for (var p in patterns) set.push({ input: patterns[p], output: patterns[p] }); return this.trainer.train(set, { iterations: 500000, error: .00005, rate: 1 }); } feed(pattern) { var output = this.activate(pattern); var pattern = []; for (var i in output) pattern[i] = output[i] > .5 ? 1 : 0; return pattern; } }