TensorFlow iOS端编译过程记录

TensorFlow iOS端编译过程记录

Tensorflow Android端编译记录

参考

TensorFlow GitHub中的iOS端编译指导
当然,编译过程中产生的问题都可以在issues中找找

环境准备

系统:mac os 10.14
bazel: 0.24.1
TensorFlow:1.14.0
Python:3.6.3
需要翻墙
编译过程中如果提示缺少什么工具,使用Python安装即可,这里我就不写了,因为编译踩坑过程很漫长,中间安装了什么忘记了

编译过程

进入TensorFlow根目录:

cd tensorflow-1.14.0

编译:

tensorflow/contrib/makefile/build_all_ios.sh -g /Users/mask/Desktop/model_7_15_GA_4.pb -T

其中:
model_7_15_GA_4.pb:是自己的模型
如果只想单独编译一个cpu:

tensorflow/contrib/makefile/build_all_ios.sh -a arm64 -g /Users/mask/Desktop/model_7_15_GA_4.pb -T

然后就是漫长的编译过程

提示
经过漫长的验证,1.14.0版本的TensorFlow编译iOS端是没有问题的,只要把需要的环境配置好即可。

最后,会在tensorflow/contrib/makefile/gen/lib/中出现libtensorflow-core.a

补充说明

1、Op问题
加载pb模型,NO OpKernel was registered to Op ‘…’ 问题
可使用以下命令查找op所在的文件:

grep 'REGISTER.*"..."' tensorflow/core/kernels/*.cc

或者

grep 'REGISTER.*"..."' tensorflow/core/ops/*.cc

找到后打开文件tensorflow/contrib/makefile/tf_op_files.txt在其中添加.cc文件后重新编译。

Xcode中使用编译的.a包

引用的文件太多太杂
Build Settings -> Linking -> Other Linker Flags中加入:

"$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/gen/protobuf_ios/lib/libprotobuf-lite.a"
"$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/gen/protobuf_ios/lib/libprotobuf.a"
"$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/downloads/nsync/builds/lipo.ios.c++11/nsync.a"
-force_load
"$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/gen/lib/libtensorflow-core.a"

Build Settings -> Search Paths -> Header Search Paths中加入:

$(SRCROOT)/../tensorflow-1.14.0
$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/downloads
$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/gen/proto
$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/downloads/protobuf/src/
$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/downloads/eigen
$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/downloads/absl
$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/downloads/nsync/public

Build Settings -> Search Paths -> Library Search Paths中加入:

$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/gen/lib
$(SRCROOT)/../tensorflow-1.14.0/tensorflow/contrib/makefile/gen/protobuf_ios/lib

Apple Clang - Language C++ -> C++ Language Dialect选择

GUN++ 11[-std=gun++11]

Build Phases -> Link Binary With Libraries中加入

libc++.tbd
Accelerate.framework
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值