自己编译iOS上的PyTorch库

1,先安装anaconda

推荐使用conda,对于混合python库和二进制库的管理很优秀。下面所有的python环境和命令都是在conda下。你可以使用官方安装的方式,也可以参考下面的命令行:

curl --retry 3 -o ~/conda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
chmod +x ~/conda.sh
/bin/bash ~/conda.sh -b -p ~/anaconda
export PATH="~/anaconda/bin:${PATH}"
source ~/anaconda/bin/activate

2,安装依赖包

sudo pip install pyyaml
sudo pip install typing

3,确保xcodebuild已经安装

gemfield:~/github/CivilNet/pytorch$ command -v xcodebuild
/usr/bin/xcodebuild

4,克隆PyTorch官方仓库

如果是全新的克隆,则执行如下的命令:

git clone --recursive https://github.com/pytorch/pytorch

如果有已经克隆下的PyTorch仓库,则在仓库中运行如下更新命令:

git submodule sync
git submodule update --init --recursive

5,编译XCode的iOS模拟器用的库

在仓库根目录下,执行:

BUILD_PYTORCH_MOBILE=1 IOS_PLATFORM=SIMULATOR ./scripts/build_ios.sh

6,编译XCode的arm64架构的库

在仓库根目录下,执行:

BUILD_PYTORCH_MOBILE=1 IOS_ARCH=arm64 ./scripts/build_ios.sh

如何在XCode上使用刚刚编译的PyTorch库

1,在XCode上打开你的项目,拷贝所有的静态库和头文件到你的项目中。在project settings中,设置Header Search Paths为你刚刚拷贝的头文件的路径;

2,在XCode项目的build settings中,找到other linker flags,添加如下的link参数:

-force_load $(PROJECT_DIR)/${path-to-libtorch.a}

3,为target禁用bitcode,选择项目的Build Settings, 找到Enable Bitcode, 设置其值为No.

总结

在后续的文章中,Gemfield还将介绍iOS构建的PyTorch库的详细编译单元组成,在此基础上再介绍下自定义operator的编译,以达到减少静态库大小的目的(当然减幅不是很大)。

部署PyTorch 1.4到XCode和iOS

发布了1715 篇原创文章 · 获赞 380 · 访问量 247万+

猜你喜欢

转载自blog.csdn.net/tony2278/article/details/105089940