一、前言
做了个目标检测项目,想把模型最后运用起来,奈何自己只会nodejs,不会java啥的,找了很多博客,基本上没有这样做过,最终在看了node运行命令行,以及多条命令行的运行相关知识,参考了其他大佬的知识,做了出来。
1.初始化项目
在一个文件夹中打开cmd命令行,输入 express -e XXX XXX为你的项目名字
2.开始写代码
在app.js 中添加代码,监听8090端口 在routes文件夹中的index.js中添加代码: 首先引入相关库child_process
const child_process = require('child_process');
然后用child_process .exec()方法 第一个输入字符串就是你cmd命令行要执行的内容,也就是node帮你开了一个shell执行cmd命令
'activate pytorch && cd /d "E:/xiamen/web/public/test_val" && python run_on_seq.py'
这里第一个命令是 activate pytorch 就是激活你的anaconda下创建的pytorch环境 然后执行命令 cd /d “E:/xiamen/web/public/test_val” 进入你py文件代码的文件夹 最后就是运行 python run_on_seq.py
代码如下:
router.get('/calculation',function(req,res,next){
var workerProcess = child_process.exec('activate pytorch && cd /d "E:/xiamen/web/public/test_val" && python run_on_seq.py', function (error, stdout, stderr) {
if (error) {
console.log(error.stack);
console.log('Error code: '+error.code);
console.log('Signal received: '+error.signal);
}else{
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
res.send(eval(stdout))
}
});
workerProcess.on('exit', function (code) {
console.log('子进程已退出,退出码 '+code);
});
});
总结
之前就一直在想怎么用node把深度学习的模型运行起来,做一个交互。这下终于完成了,这个方法也适用于TensorFlow,改一改命令就行了,博客有不足之处,欢迎在评论中提出!
参考博客: https://www.jianshu.com/p/b1dc42c152ab
|