-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to deploy to C++ project, thank you!怎么部署到C++工程,谢谢! #220
Comments
一种解决方案是python做服务器,c++通过socket发送检测请求。 |
Because there are not only detection modules in my project, but also other modules, so I need C++, look forward to guidance! |
I honestly have no experience in c++ deployment ... |
@xingyizhou |
Convert model to caffe. And run it in caffe |
@Markusgami |
持续关注,有好的解决方案吗, 用libtorch? |
Wait online, it's urgent! |
@zoufangyu1987 @kunyao2015 |
@jnulzl |
@zoufangyu1987 |
@jnulzl |
用trace转模型,再用libtorch部署吧,亲测可用 |
转caffe时候的DCNV2怎么办?caffe又不是天然支持 |
我把没有dcn层的dlav0_34的pytorch模型已经转成caffemodel,这两天理了下centernet的demo的前处理和后处理相关python代码,还是蛮繁琐的,有搞好的朋友分享下C++代码啊,万分感谢! |
trace 可以成功么?你训练的什么arch的模型? |
res18的 |
请问,你解决了DCNv2的部署问题么? |
@Fighting-JJ |
等我成功在C++上部署,一定分享给大家源码 |
我已经把pytorch全部剥离,在python上依赖numpy正常跑通了,下一步转C++,发现numpy有C++版本——"numcpp",搞得身心疲惫,希望后面少点坑! |
You can use jit.trace to trace the model then deploy it with c++ by libtorch which is a c++ library. |
It's no need to use numcpp. You can read the image to CV::Mat by opencv in C++ version, and convert the Mat to caffe::Blob. |
@chenjx1005 |
@hexiangquan |
基于numcpp的C++版本加载caffemodel已经成功了,结果一致,谢谢大家! |
期待您的分享 |
@BokyLiu |
我没有使用DCN的,用的DLA034或者是resnet |
|
这个需要python |
This worked for me, |
@BokyLiu |
libtorch优化不好,而且速度很慢,建议用tensorrt |
@zoufangyu1987 I cannot find file about Alg_VIR, so cannot build centernet c++ project,can u share this file? |
@Dantju |
@zoufangyu1987 但是centernet.cpp中有一些这样的参数定义 |
@Dantju |
@zoufangyu1987 sVIRInput 整个结构体在后面的code中用到了,那么整个头文件十是否能分享一下呢 sVIRInput virInput;
#if 01 |
@zoufangyu1987 这个code是在windows下编译的吗,我编译总是遇到syntax error:missing ';' before '}' |
@Dantju |
@zoufangyu1987 ok,那么能提供一下sVIRInput 的头文件吗 |
@Dantju |
有成功在windows下跑成功的吗,可以分享下code吗 |
感谢您分享的代码,想请问一下,您后来有对代码进行优化么?是怎么做的呢? |
@xiaowk5516 I didn't optimize the post-processing part, and my personal ability is limited. |
多谢您的回答,我会去了解一下的,再次感谢。 |
我用trace转成了模型 但是模型的结果在c++中调用产生的结果和python中不同 应该是forward用trace还是不准确。 但是script太难用了 转不了模型 |
哥,您这个代码用了C++的numpy库,想问下放到板子上能运行吗 |
你好,转成libtorch的代码你还存着吗,我的网络用的是dla,不是说网络里面有dcn直接用trace转换会报错吗,请问你是怎么解决的呢? |
@ShihuaiXu |
@LaserLV52 |
都是相互学习的哈哈哈,对了,顺便问一下你,你当时换用了没有dcn层的网络之后,有没有对比过和用了dcn层的性能差距,他们的性能表现差距大吗? |
@LaserLV52 |
好 我去试试看 |
楼主我又来了,我现在用dlav0的网络训练了一个模型,就是没有dcn了,用trace导出torchscript是成功了,到c++里面能够正常forward,forward出来的格式也是对的,就是hm,wh,reg三个部分,但是出来的结果数据类型是torch::jit::IValue,这个类型我不知道要怎么操作,我试过他们的办法用output.toTuple()->elements()[0].toTensor()是会报错的,不知道你是怎么解决的呢? |
我是这样做的,你试试。 |
昨天我又自己摸索了一下,现在是搞通了,就是要在python代码里面修改一下网络的输出就可以了。但是现在有个新问题,就是我现在在c++里面看网络的三层输出,hm,wh,reg,发现跟python里面的不一样,然后就发现python代码里面的预处理,是用了仿射变换然后还进行了均值和方差的偏移运算的,而我c++里面只是用了resize,所以输出结果不一样了。你应该当时也遇到了这个问题?所以你的c++预处理的仿射变换和均值方差运算是怎么做的呢?python的numpy有广播机制很好运算,c++确实不熟,拿着数据都不知道要怎么用。。。 |
Now there is a pytorch model. The CenterNet code is python. My project needs c++. How to deploy it?
Note: My Python code ability is weak
现在已经有pytorch的模型,CenterNet代码都是python的,我的工程需要c++,怎么布署呢?
注:本人python代码能力弱
The text was updated successfully, but these errors were encountered: