构建 ExecuTorch iOS 演示应用程序¶
欢迎使用 ExecuTorch iOS 演示应用程序设置教程!
此应用程序使用 MobileNet v3 模型处理实时摄像头图像,利用三个不同的后端:XNNPACK、Core ML 和 Metal Performance Shaders (MPS)(仅限 Xcode 15+ 和 iOS 17+)。
先决条件¶
在开始之前,请确保已安装以下工具
2. Python 3.10+¶
Python 3.10 或更高版本以及 pip
应预先安装在 MacOS 13.5+ 上。如果需要,下载 Python 并安装它。使用以下命令验证 Python 和 pip 版本
which python3 pip
python3 --version
pip --version
3. 入门教程¶
按照 设置 ExecuTorch 教程配置基本环境
git clone -b release/0.2 https://github.com/pytorch/executorch.git
cd executorch
git submodule update --init
python3 -m venv .venv && source .venv/bin/activate
./install_requirements.sh --pybind coreml mps xnnpack
模型和标签¶
现在,让我们继续导出和打包 MobileNet v3 模型。
1. 导出模型¶
使用 Core ML、MPS 和 XNNPACK 后端导出 MobileNet v3 模型,并将导出的模型移动到特定位置,以便演示应用能拾取它们
python3 -m examples.portable.scripts.export --model_name="mv3"
python3 -m examples.apple.coreml.scripts.export --model_name="mv3"
python3 -m examples.apple.mps.scripts.mps_example --model_name="mv3"
python3 -m examples.xnnpack.aot_compiler --delegate --model_name="mv3"
mkdir -p examples/demo-apps/apple_ios/ExecuTorchDemo/ExecuTorchDemo/Resources/Models/MobileNet/
mv mv3*.pte examples/demo-apps/apple_ios/ExecuTorchDemo/ExecuTorchDemo/Resources/Models/MobileNet/
2. 下载标签¶
下载图像分类所需的 MobileNet 模型标签
curl https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt \
-o examples/demo-apps/apple_ios/ExecuTorchDemo/ExecuTorchDemo/Resources/Models/MobileNet/imagenet_classes.txt
最后步骤¶
我们快完成了!现在,我们只需要在 Xcode 中打开项目、运行测试,最后运行应用即可。
1. 在 Xcode 中打开项目¶
双击 examples/demo-apps/apple_ios/ExecuTorchDemo
下的项目文件或运行命令
open examples/demo-apps/apple_ios/ExecuTorchDemo/ExecuTorchDemo.xcodeproj
2. 运行测试¶
你可以在 Xcode 中直接在模拟器上使用 Cmd + U
运行测试,或使用命令行
xcrun simctl create executorch "iPhone 15"
xcodebuild clean test \
-project examples/demo-apps/apple_ios/ExecuTorchDemo/ExecuTorchDemo.xcodeproj \
-scheme App \
-destination name=executorch
xcrun simctl delete executorch
3. 运行应用¶
最后,连接设备,在 Xcode 中设置代码签名,然后使用 Cmd + R
运行应用。尝试安装发布版本以获得更好的性能。
恭喜!你已成功设置 ExecuTorch iOS 演示应用。现在,你可以在 iOS 设备上探索并享受 ExecuTorch 的强大功能!