第二章:环境搭建——安装 TensorFlow、配置 Android Studio、安装 TFLite 解释器依赖
说实话,环境搭建这一步,劝退了很多人。
我见过不少同学,代码写得挺溜,结果卡在环境配置上,一卡就是两三天。嗯,这很正常。移动端和边缘端的开发环境,比纯后端要复杂一些。你不仅要搞定 Python 那一套,还得跟 Android Studio 或 Xcode 打交道。
今天我就带你一步步走通。我的原则是:能自动就别手动,能复制就别打字。
2.1 安装 TensorFlow——选对版本很重要
先装 Python。我个人习惯用 Python 3.8 到 3.10 之间的版本。太新的 Python 版本,有些 TFLite 的旧依赖可能不兼容。
我建议你直接用 Anaconda 或者 Miniconda 来管理环境。为什么?因为隔离。你想想看,项目一多,依赖打架是常有的事。
核心操作:
# 创建独立环境
conda create -n tflite_env python=3.9
conda activate tflite_env
# 安装 TensorFlow(包含 TFLite)
pip install tensorflow==2.13.0
这里有个坑。我曾经在项目里直接装了最新版的 TensorFlow,结果发现 TFLite 的某些算子不支持。后来我学乖了:生产环境尽量用 LTS 版本。2.13.0 是我目前用得最稳的版本。
装完之后,验证一下:
python -c "import tensorflow as tf; print(tf.__version__)"
如果打印出版本号,恭喜你,第一步走通了。
2.2 配置 Android Studio——别被 Gradle 吓到
Android Studio 的安装我就不赘述了,官网下载就行。我要重点说的是 SDK 和 NDK 的配置。
为什么需要 NDK?因为 TFLite 的 GPU 代理和某些底层算子,需要原生代码支持。
注意:NDK 版本不是越新越好。TFLite 官方推荐 NDK r25c 或 r26。我试过 r27,编译时直接报错。嗯,别问我怎么知道的。
配置步骤:
- 打开 Android Studio,进入 SDK Manager
- 在 SDK Tools 选项卡里,勾选 NDK (Side by side)
- 选择版本 25.2.9519653(这是 r25c 的对应版本)
- 同时勾选 CMake,版本选 3.22.1 以上
配置完成后,在项目的 local.properties 文件里,你会看到类似这样的内容:
sdk.dir=/Users/你的用户名/Library/Android/sdk
ndk.dir=/Users/你的用户名/Library/Android/sdk/ndk/25.2.9519653
我个人习惯把 NDK 路径写死,避免 Gradle 自动升级后出问题。
2.3 安装 TFLite 解释器依赖——两种方式,任你选
TFLite 在 Android 上有两种集成方式。说白了,一个省事,一个灵活。
方式一:通过 Maven 依赖(推荐新手)
在 build.gradle 文件里添加:
dependencies {
// TFLite 核心库
implementation 'org.tensorflow:tensorflow-lite:2.13.0'
// GPU 加速(可选)
implementation 'org.tensorflow:tensorflow-lite-gpu:2.13.0'
// 支持更多算子(可选)
implementation 'org.tensorflow:tensorflow-lite-select-tf-ops:2.13.0'
}
加完之后,记得 Sync Now。我第一次用的时候,忘了加 GPU 依赖,结果模型在手机上跑得比蜗牛还慢。后来加上 GPU 代理,速度直接翻了 3 倍。
方式二:手动导入 AAR 文件(适合定制需求)
如果你需要修改 TFLite 的底层代码,或者要裁剪库体积,那就得用 AAR 了。
- 从 Maven 仓库 下载对应版本的 AAR 文件
- 放到项目的
app/libs目录下 - 在
build.gradle里添加:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar'])
}
我的建议:刚开始做项目,用 Maven 依赖就够了。等你对 TFLite 熟悉了,再考虑手动导入 AAR。别一开始就给自己找麻烦。
2.4 Xcode 配置(iOS 开发者看这里)
如果你是做 iOS 的,流程类似,但工具链不同。
首先,确保你的 Xcode 版本 >= 14。然后通过 CocoaPods 或 Swift Package Manager 集成。
CocoaPods 方式:
# Podfile
target 'YourApp' do
pod 'TensorFlowLiteSwift', '~> 2.13.0'
# 如果需要 GPU 加速
pod 'TensorFlowLiteSwift/Metal', '~> 2.13.0'
end
然后执行 pod install。这里有个小坑:第一次 pod install 会下载很多依赖,网络不好的话容易超时。我建议你提前配好代理,或者用国内镜像源。
Swift Package Manager 方式:
直接在 Xcode 里选择 File → Add Packages,搜索:
https://github.com/tensorflow/tensorflow.git
选择版本 2.13.0,然后勾选 TensorFlowLiteSwift 即可。
2.5 验证环境——跑一个最小 Demo
环境搭好了,不跑个 Demo 心里不踏实。我一般用 TFLite 自带的 MobileNet 模型来验证。
Android 端的核心代码就这几行:
// 加载模型
Interpreter tflite = new Interpreter(loadModelFile(context));
// 准备输入输出
float[][] input = new float[1][224*224*3];
float[][] output = new float[1][1001];
// 执行推理
tflite.run(input, output);
// 解析结果
// ... 这里省略解析逻辑
如果能在手机上跑出分类结果,说明你的环境完全 OK 了。
避坑指南:我曾经在模拟器上跑 TFLite,结果 GPU 代理一直报错。后来才发现,模拟器不支持 GPU 加速。所以,真机测试才是王道。
2.6 本章小结
环境搭建其实就三件事:
- TensorFlow:用 conda 隔离,版本选 2.13.0
- Android Studio:配好 NDK r25c,别用太新的
- TFLite 依赖:新手用 Maven,老手用 AAR
嗯,把这些搞定,后面写代码就顺畅多了。下一章,我们开始真正接触 TFLite 模型转换。到时候你会发现,环境搭好了,后面的路就好走了。