【发布时间】:2018-08-10 12:29:08
【问题描述】:
我正在进行人工智能培训,该方法需要很长时间(5 分钟),当我的方法运行时,我的后端一直被阻塞等待我的方法完成,有什么解决方案吗?
train: (answersIA, search, res) => {
const path = `api/IA/${search.id}`;
if (answersIA.length == 0) {
return null;
}
else {
answersIA = answersIA.filter(answer => answer.score);
answersIA = answersService.setOutput(answersIA);
answersIA = answersService.encodeAll(IAServiceTrain.adjustSize(answersIA));
net.train(answersIA, {
errorThresh: 0.005,
iterations: 100,
log: true,
logPeriod: 10,
learningRate: 0.3
});
mkdirp(path, (err) => {
if (err) throw 'No permission to create trained-net file';
fs.writeFileSync(`${path}/trained-net.js`, `${net.toFunction().toString()};`);
res.json({
message: 'Trained!'
});
});
}
}
【问题讨论】:
-
在单独的进程中运行任何长时间。看看fork,如果你需要运行一些需要几到几百毫秒的东西。在单独的线程/进程中显式运行它们,因为 Node.js 与所有 JS 引擎一样 - 本质上是单线程的。
标签: node.js multithreading blocking brain.js