从json导入LSTM网络的brain.js问题



我做了一个brain.js LSTM网络,预测加法。然后我使用net.toJSON()将其保存到.json文件中然而,它似乎不起作用。traindata.json已成功创建,没有任何错误。然而,我得到了一个错误:

/home/runner/AngryBlaringTelevision/node_modules/brain.js/dist/brain.js:18102
var matrix = new Matrix(json.rows, json.columns);
^
TypeError: Cannot read property 'rows' of undefined
at Function.fromJSON (/home/runner/AngryBlaringTelevision/node_modules/brain.js/dist/brain.js:18102:36)
at LSTM.fromJSON (/home/runner/AngryBlaringTelevision/node_modules/brain.js/dist/brain.js:20142:26)
at /home/runner/AngryBlaringTelevision/index.js:9:7
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)

我的代码:

const brain = require('brain.js');
const fs = require('fs');
const LSTM = brain.recurrent.LSTM;
const net = new LSTM();
fs.readFile('traindata.json', function(err, data) {
if (err) throw err;
net.fromJSON(data);
console.log("file loaded");
});

此外,这是我在pastebin上的traindata.json文件的链接:https://pastebin.com/tBZyxq1R我不知道如何解决这个错误。这似乎是brain.js.的错误

在导入文件后,我也尝试过net.run(),但它也不起作用。

我认为可能发生的情况是,您传递给BrainJS的实际上不是JSON。

在你的代码中,你有这样的:

fs.readFile('traindata.json', function(err, data) {
if (err) throw err;
net.fromJSON(data);
console.log("file loaded");
});

当我尝试运行您的代码时,我看到了与您看到的相同的错误。使用JSON.parse()似乎解决了这个问题。

换句话说,当我将net.fromJSON(data);更改为net.fromJSON(JSON.parse(data));时,错误消失了。

最新更新