0

我在node.js项目中使用Brain.js。现在训练需要很长时间才能运行程序以更新内容,因此我使用Github页面中提到的预期方法将网络保存在json文件中。它似乎正确保存,但是当我尝试加载它,它说 “node_modules /脑/ lib中/ neuralnetwork.js:341 变种大小= json.layers.length;” 我可能做错事因为我还没有在Github或这里发现这个问题,任何帮助将不胜感激。由于大部分文件都是重复加载文件的代码,因此不会放置整个文件。这一切正常工作没有任何错误,直到加载文件。如果需要更多的代码,我会后Brain.js - 无法从json文件加载网络

主文件

function run(){ 
    console.log("training network..."); 
    var trainingNet0 = net0.train([ 
     {input: pixels0, output: [1]}, 
     {input: pixels1, output: [1]}, 
     {input: pixels2, output: [1]}, 
     {input: pixels3, output: [1]}, 
     {input: pixels6, output: [0]}, 
     {input: pixels7, output: [0]}, 
     {input: pixels8, output: [0]}, 
     {input: pixels9, output: [0]}], 
     { 
      errorThresh: 5, // error threshold to reach 
      iterations: 1000, // maximum training iterations 
      log: false,   // console.log() progress periodically 
      logPeriod: 10,  // number of iterations between logging 
      learningRate: 0.003 // learning rate); 
    }) 

    console.log(net0.run(pixels4)) 
    console.log(net0.run(pixels5)) 
    console.log(net0.run(pixels6)) 
    console.log(net0.run(pixels3)) 
    saveFile(); 

} 

function saveFile(){ 
    fs.writeFile("network.json", net0.toJSON(), function(err) { 
     if(err) 
      return console.log(err); 

     console.log("The file was saved!"); 
     loadFile() 
    }); 
    console.log(net0.toJSON()) 
} 

function loadFile(){  
    fs.readFile('network.json', function (err, data) { 
     if (err) 
      throw err; 

     console.log(data.layers); 
     net0.fromJSON(data); 
     console.log("file loaded"); 
    }); 
} 

JSON文件的正被保存得

[object Object] 

回答

1

我相信你需要传递一个字符串的内容您要写入fs.writeFile的数据。所以JSON.stringify()的数据你通过。

function saveFile(){ 
    fs.writeFile("network.json", JSON.stringify(net0.toJSON()), function(err) { 
     if(err) 
      return console.log(err); 

     console.log("The file was saved!"); 
     loadFile() 
    }); 
} 

不要忘了,你将有你fs.readFile()

var obj = JSON.parse(fs.readFileSync('network.json', 'utf8')); 

后JSON.parse数据或者您可以使用此节点模块将json保存到文件中:https://github.com/jprichardson/node-jsonfile