如何修复 Brain.js 中的 NaN 训练错误?
How do I fix the NaN training error in Brain.js?
我的神经网络有问题,我真的需要你的帮助。
当网络正在训练时,它得到了这个输出:
iterations: 10, training error: NaN
iterations: 20, training error: NaN
等等...
到目前为止我已经尝试过:
- 仅用于训练输出为 0 或 1 的数据
- 规范化数据
- 使输入变平
这是我的 training data.
这是我的代码:
const Brain = require('brain.js'),
fs = require('fs'),
config = {
logPeriod: 10,
log: true,
iterations: 100
};
let trainingData = JSON.parse(fs.readFileSync('./data/trainingData.normalized.json', 'utf8'));
const net = new Brain.NeuralNetwork({
hiddenLayers: [72, 72]
});
net.train(trainingData, config);
console.log(net.run(trainingData[0].input));
任何帮助将不胜感激!
此答案已被编辑。
您似乎在使用嵌套数组。 340 个输入,其中输入是 72 个数组的 72 个数组。我不确定你之前是如何压平你的输入的,但是使用你的训练数据和你的代码,我可以通过这样做得到 0.18139151128039302 的训练错误:
for (let datum of trainingData) {
datum.input = datum.input.flat()
}
const train = net.train(trainingData, config);
我的神经网络有问题,我真的需要你的帮助。
当网络正在训练时,它得到了这个输出:
iterations: 10, training error: NaN
iterations: 20, training error: NaN
等等...
到目前为止我已经尝试过:
- 仅用于训练输出为 0 或 1 的数据
- 规范化数据
- 使输入变平
这是我的 training data.
这是我的代码:
const Brain = require('brain.js'),
fs = require('fs'),
config = {
logPeriod: 10,
log: true,
iterations: 100
};
let trainingData = JSON.parse(fs.readFileSync('./data/trainingData.normalized.json', 'utf8'));
const net = new Brain.NeuralNetwork({
hiddenLayers: [72, 72]
});
net.train(trainingData, config);
console.log(net.run(trainingData[0].input));
任何帮助将不胜感激!
此答案已被编辑。
您似乎在使用嵌套数组。 340 个输入,其中输入是 72 个数组的 72 个数组。我不确定你之前是如何压平你的输入的,但是使用你的训练数据和你的代码,我可以通过这样做得到 0.18139151128039302 的训练错误:
for (let datum of trainingData) {
datum.input = datum.input.flat()
}
const train = net.train(trainingData, config);