c++调用pb模型并实现单张图像的预测

环境:
win10
vs2017

查了资料,暂定三个方案:

  1. c++调用写好的python脚本
  2. cmake编译tf源码,c++调用并实现离线预测
  3. 通过找到python模块,类,方法,构造参数来调用

第一种方案实现了,写了个分类demo,新建虚拟环境,打包需要的东西,这个包很大,集成进客户端整个app都很大,但凡有其他选择,肯定不选这种!

尝试第二种方案:

编译tensorflow的时候我才发现没装NCCL,一些博客真的很坑,为什么连坑都原封不动的复制过来呢,人家的坑也是你的坑嘛,特别想吐槽呢!!

NCCL下载地址:link

https://developer.nvidia.com/nccl
sudo dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
sudo apt update
sudo apt install libnccl2 libnccl-dev
sudo cp /usr/lib/x86_64-linux-gnu/libnccl.so.2 /usr/local/cuda/lib
sudo cp /usr/include/nccl.h /usr/local/cuda/include/

nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb的链接:
链接:https://pan.baidu.com/s/1jl_e4T8XZSMItRifDCAmvQ
提取码:l9j3

编译tensorflow注意的事项有:

  1. tensorflow版本我选的1.10
  2. python3.5 默认的安装地址:/usr/bin/python3.5
  3. 根据自己想编译的版本选择python各种库的位置
  4. ubuntu16.04 选择了gcc-4.8
  5. 其他好像没啥坑了

安装了几个python库:

sudo pip3.5 install -U --user pip six numpy wheel mock
sudo pip3.5 install -U --user keras_applications==1.0.5 --no-deps
sudo pip3.5 install -U --user keras_preprocessing==1.0.3 --no-deps

下面就是编译了:
因为想用cuda加速,所以就多给了个参数,这边据说坑很多,我这个还在编译,有点担心,这一步我看了很多博客都说不要加sudo, 不然会有很多意想不到的错误,我用bazel本身也不喜欢加sudo,所以就没加,等结果咯!!
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

在这里插入图片描述
博客刚发布,看到了successfully!开心~

在这里插入图片描述

验证了一下,编译好的tf能正确输出想要的!
接下来编译生成.so文件,编译c++API的库:
bazel build //tensorflow:libtensorflow_cc.so

在这里插入图片描述
编译成功,又实现了一个小目标!!!

额,为什么我导包需要加载完整的路径才行呢?留个疑问!!

在这里插入图片描述
这也太丑了吧!!!

编译tensorflow看到的优秀的参考文献:、
https://blog.csdn.net/HappyCtest/article/details/86747306

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值