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