栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Nodejs+express后端运行Anaconda安装的pytorch环境的py文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Nodejs+express后端运行Anaconda安装的pytorch环境的py文件

一、前言

做了个目标检测项目,想把模型最后运用起来,奈何自己只会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){
  //创建子进程
  //这里是shell语句,可以通过&&将多条命令执行,这里cmd 用activate就可以激活,只有conda的shell才需要加conda
  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))   //这里要eval一下,然后在客户端才能eval将字符串转化为json数组
    }
    
      
  });

  workerProcess.on('exit', function (code) {
      console.log('子进程已退出,退出码 '+code);
  });
});

总结

之前就一直在想怎么用node把深度学习的模型运行起来,做一个交互。这下终于完成了,这个方法也适用于TensorFlow,改一改命令就行了,博客有不足之处,欢迎在评论中提出!

参考博客:
https://www.jianshu.com/p/b1dc42c152ab

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/272718.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号