Если обучить за менее чем 5 секунд сетку и попробовать что-то вычислить то работает.
Но если сетку сохранить в JSON или в функцию то обратно загрузить не удастся.
При загрузке из JSON
Ошибка:
При загрузке из функции подсчет идет и результат выдает, но вместо цифр выдает null
Воспроизводится как на сложных сетках так и на простом примере из репозитория.
Немного его изменил чтобы он пытался записать json в файл и считать
Запись в JSON идет корректная. Если запустить такой же пример с тем же файлом на на обычной node.js 8+ версии то все загружается корректно.
Обучать сетки в парсере конечно не планируется, но вот загрузить обученную очень хотелось бы иметь возможность.
https://www.npmjs.com/package/brain.js
Но если сетку сохранить в JSON или в функцию то обратно загрузить не удастся.
При загрузке из JSON
Ошибка:
Код:
TypeError: Cannot read property 'bias' of undefined
at NeuralNetwork.fromJSON (files/node_modules/brain.js/./dist/neural-network.js:1136:45)
При загрузке из функции подсчет идет и результат выдает, но вместо цифр выдает null
Воспроизводится как на сложных сетках так и на простом примере из репозитория.
Немного его изменил чтобы он пытался записать json в файл и считать
Запись в JSON идет корректная. Если запустить такой же пример с тем же файлом на на обычной node.js 8+ версии то все загружается корректно.
Обучать сетки в парсере конечно не планируется, но вот загрузить обученную очень хотелось бы иметь возможность.
https://www.npmjs.com/package/brain.js
Код:
const fs = require('fs');
var brain = require('brain.js');
const a = character(
'.#####.' +
'#.....#' +
'#.....#' +
'#######' +
'#.....#' +
'#.....#' +
'#.....#'
);
const b = character(
'######.' +
'#.....#' +
'#.....#' +
'######.' +
'#.....#' +
'#.....#' +
'######.'
);
const c = character(
'#######' +
'#......' +
'#......' +
'#......' +
'#......' +
'#......' +
'#######'
);
try {
const net = new brain.NeuralNetwork();
let basejson = require('base_2.json');
net.fromJSON(basejson);
console.log('Загружено из JSON');
let test = {"factor1":1,"factor2":1,"factor3":1,"factor4":1,"factor5":1,"factor6":1};
console.log(JSON.stringify(net(test)));
//net.fromJSON(base);
brain.likely(character(
'.#####.' +
'#.....#' +
'#.....#' +
'###.###' +
'#.....#' +
'#.....#' +
'#.....#'
), net);
console.log(brain.likely(character(
'.#####.' +
'#.....#' +
'#.....#' +
'###.###' +
'#.....#' +
'#.....#' +
'#.....#'
), net));
// do stuff
} catch (ex) {
console.log(ex.stack);
/**
* Learn the letters A through C.
*/
const net = new brain.NeuralNetwork();
net.train([
{ input: a, output: { a: 1 } },
{ input: b, output: { b: 1 } },
{ input: c, output: { c: 1 } }
], {
log: detail => console.log(detail)
});
fs.writeFile('./files/node_modules/base_2.json', JSON.stringify(net.toJSON()), function (r,fd) {
console.log(r,__dirname);
});
console.log(brain.likely(character(
'.#####.' +
'#.....#' +
'#.....#' +
'###.###' +
'#.....#' +
'#.....#' +
'#.....#'
), net));
}