我想用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 ]
出什么问题了?
答案 0 :(得分:2)
我也在学习ML,我也许可以为您提供帮助 首先,您应该在第一行中输入“ brain.js”,而不是“ brainjs”
var brain = require('brain.js');
神经网络的工作方式是它们在给定的数据(即输入和输出)上进行训练,因此您不必为输入的数据定义公式
您还可以限制网络迭代的运行,因此您不必等待很长时间(迭代次数少,您就不会期望输出非常准确),如果我们学习模式 还请访问“ Brad Traversy”的youtube频道,他在brain.js上有非常不错的速成课程
这是对我有用的代码 并且您还应该查找LSTM等以进行学习 希望对您有帮助
def as_needed(expensive_computation, default):
if random_condition():
return expensive_computation()
return default
答案 1 :(得分:1)
您必须像这样将输入作为数组提供
test()
答案 2 :(得分:1)
您需要以类似数组的形式提供输入
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 output = net.run([input]);
或将训练更改为完全不使用数组
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 output = net.run(input);