我的神经网络出现了问题,我非常需要你的帮助。
当网络在训练时,它会给我这样的输出:
iterations: 10, training error: NaNiterations: 20, training error: NaN
依此类推…
到目前为止,我尝试过以下方法:
- 仅使用输出为0或1的数据进行训练
- 对数据进行归一化处理
- 对输入进行扁平化处理
这是我的训练数据。
这是我的代码:
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));
任何帮助都将不胜感激!
回答:
这个回答已被编辑。
看起来你使用了嵌套数组。你的输入是72个数组,每个数组又包含72个数组。我不确定你之前是如何扁平化你的输入的,但使用你的训练数据和代码,我通过以下方式获得了0.18139151128039302的训练错误:
for (let datum of trainingData) { datum.input = datum.input.flat()}const train = net.train(trainingData, config);