4

我的问题


我刚开始学习brain js并开发了一个模型,它为您提供基于input text.

我想问一下,每次运行模型取决于iterations数量越大,iterations花费的时间就越多,但它会提高accuracy模型的性能。

有什么办法可以pre-trained让我的模型不让用户等待输出。

一个例子真的会帮助我。

我的代码


// JSON file data //

[
  {
    "text": "my unit test failed",
    "category": "software"
  },
  {
    "text": "my driver is working",
    "category": "hardware"
  }
]

const brain = require('brain.js');
const data = require('./data.json');                 //data receiving from json//

const network = new brain.recurrent.LSTM();

const trainingData = data.map(item => ({
  input: item.text,
  output: item.category
}));

network.train(trainingData, {
  log: (error) => console.log(error),
  iterations: 1000
});

console.log(network.run('buy me a driver'));         // output is Hardware //

4

1 回答 1

7

您可以将脚本分成两部分。一方面,我们使用数据训练网络,然后使用network.toJSON()函数将其保存到 JSON 文件中。

其次,我们使用network.fromJSON()函数从 JSON 文件加载网络状态,然后针对我们的数据运行它。

火车网络.js

const brain = require('brain.js');
const data = require('./data.json');    
const fs = require("fs");

const network = new brain.recurrent.LSTM();

const trainingData = data.map(item => ({
  input: item.text,
  output: item.category
}));

network.train(trainingData, {
  log: (error) => console.log(error),
  iterations: 1000
});

// Save network state to JSON file.
const networkState = network.toJSON();
fs.writeFileSync("network_state.json",  JSON.stringify(networkState), "utf-8");

加载network.js

const brain = require('brain.js');
const fs = require("fs");

let network = new brain.recurrent.LSTM();

// Load the trained network data from JSON file.
const networkState = JSON.parse(fs.readFileSync("network_state.json", "utf-8"));
network.fromJSON(networkState);

console.log(network.run('buy me a driver')); 
于 2020-12-15T08:44:13.037 回答