Я только начал изучать 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.info(error),
iterations: 1000
});
console.info(network.run('buy me a driver')); // output is Hardware //
Вы можете разделить сценарий на два. В одном мы обучаем сеть с данными, а затем сохраняем их в файл JSON, используя функцию network.toJSON().
Во втором мы загружаем состояние сети из файла JSON с помощью функции network.fromJSON(), а затем запускаем ее для наших данных.
поезд-network.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.info(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.info(network.run('buy me a driver'));
Вы также можете сохранить nn в функцию с помощью net.toFunction()
и использовать ее в другом месте, как описано здесь
Чтобы устранить ошибку
Argument of type 'Buffer' is not assignable to parameter of type 'string'
вJSON.parse()
, используйтеreadFileSync().toString()