在第一次训练后,如何将新信息(仅新信息,而不是所有内容,因为它们会花费太多性能)训练到我的使用Brain.js构建的神经网络中?
答案 0 :(得分:5)
有点粗糙,但是您可以使用以下结构来实现:
如果我们加入2个训练数据集,旧的和新的,然后用keepNetworkIntact: true
再训练,那么我们的NN将比我们从头开始训练的速度快得多。
let net = new brain.NeuralNetwork();
// pre-training
net.train([
{input: [0, 0], output: [0]},
{input: [1, 1], output: [0]}
]);
// resume training with new data set
net.train([
{input: [0, 0], output: [0]}, // old training data set
{input: [1, 1], output: [0]}
].concat([
{input: [0, 1], output: [1]}, // joining new training data set
{input: [1, 0], output: [1]},
],
{keepNetworkIntact:true}
);
我知道Brain.JS即将引入一个称为resumeableTraining
的功能,我不确定是否可以实现。虽然值得检查文档。
快乐的头脑!