我想用 Brain.js 在 Node.js 中创建一个神经网络。它应该提高一些数字的幂。是的,我知道,我可以在不使用神经网络的情况下做到这一点。但我正在学习。
我只是不知道该怎么办
var brain = require('brainjs');
var net = new brain.NeuralNetwork();
net.train([
{input: [1 / 3], output: [1 / 9]},
{input: [1 / 9], output: [1 / 81]},
{input: [1 / 6], output: [1 / 36]},
{input: [1 / 8], output: [1 / 64]}
]);
var input = 1/6;
console.log(input);
var output = net.run(input);
console.log(output);
我等待大约 0.027777777777777776 的输出。但我得到了这个:
0.16666666666666666
[ NaN ]
问题是什么?
最佳答案
我也在学习 ML 我也许可以帮助你 首先,您应该在第一行输入“brain.js”而不是“brainjs”
var brain = require('brain.js');
神经网络的工作方式是根据给定的数据进行训练,即输入和输出,因此您不必为您所做的输入定义公式
您还可以限制网络运行的迭代次数,这样您就不必等待很长时间(迭代次数较少时,您不会期望输出非常准确),如果我们处于学习模式,这是可以的 还可以查看“Brad Traversy”的 YouTube channel ,他在 Brain.js 上有一个非常好的速成类(class)
这是对我有用的代码 并且您还应该查找 LSTM 等以进行学习 希望这有帮助
var brain = require('brain.js');
// var net = new brain.NeuralNetwork();
var net = new brain.recurrent.LSTM();
net.train([
{input: [0.9525741268224331], output: [0.9998766054240137]},
{input: [0.9998766054240137], output: [0.9996646498695336]},
{input: [0.9996646498695336], output: [1]},
{input: [0.9990889488055994], output: [1]}
]);
// var input = 1/(1+Math.pow(Math.E, -6));
// var output = net.run();
var output = net.run([/* insert the input here for which you want the network to guess the value for like */0.99 ])
console.log(output);// gives output = 1 or close figure to it
关于javascript - Node.js 中的类型错误 : cannot read property '0' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57644484/