| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- runTests = (label, network, tests) => {
- console.log(`--- ${label}`);
- for (test of tests) {
- console.log(`${label} test ${JSON.stringify(test)}: ${network.run(test)}`);
- }
- }
- netXOR = new brain.NeuralNetwork();
- netXOR.train([
- { input: [0, 0], output: [0] },
- { input: [0, 1], output: [1] },
- { input: [1, 0], output: [1] },
- { input: [1, 1], output: [0] }
- ]);
- runTests("XOR gate", netXOR, [
- [0,0],
- [0,1],
- [1,0],
- [1,1]
- ]);
- netSum = new brain.recurrent.LSTM({ hiddenLayer: [20] });
- netSum.train([
- "0+0=0", "0+1=1", "0+2=2", "0+3=3", "0+4=4", "0+5=5",
- "1+0=1", "1+1=2", "1+2=3", "1+3=4", "1+4=5", "1+5=6",
- "2+0=2", "2+1=3", "2+2=4", "2+3=5", "2+4=6", "2+5=7",
- "3+0=3", "3+1=4", "3+2=5", "3+3=6", "3+4=7", "3+5=8",
- "4+0=4", "4+1=5", "4+2=6", "4+3=7", "4+4=8", "4+5=9",
- "5+0=5", "5+1=6", "5+2=7", "5+3=8", "5+4=9", "5+5=10"
- ], { errorThresh: 0.025 });
- runTests("Sum", netSum, [
- "1+2=",
- "4+2=",
- "3+9="
- ]);
- netColor = new brain.NeuralNetwork();
- netColor.train([
- { input: { r: 0.62, g: 0.72, b: 0.88 }, output: { light: 1 } },
- { input: { r: 0.1, g: 0.84, b: 0.72 }, output: { light: 1 } },
- { input: { r: 0.74, g: 0.78, b: 0.86 }, output: { light: 1 } },
- { input: { r: 1, g: 0.99, b: 0 }, output: { light: 1 } },
- { input: { r: 0.33, g: 0.24, b: 0.29 }, output: { dark: 1 } },
- { input: { r: 0.31, g: 0.35, b: 0.41 }, output: { dark: 1 } },
- { input: { r: 1, g: 0.42, b: 0.52 }, output: { dark: 1 } }
- ]);
- runTests("Color match", netColor, [
- { r: 0.8, g: 0.7, b: 0.2 },
- { r: 0.5, g: 0.2, b: 0.2 }
- ]);
|