怎么将tflite部署在安卓上_TFLite 使用mobilenet训练自己的数据集并部署到手机上...

本文档详细介绍了如何将训练好的MobileNet模型通过TFLite部署到安卓设备上,包括模型的重新训练、转换为TFLite格式、在Android Studio中创建应用并替换模型文件的过程。
摘要由CSDN通过智能技术生成

TFLite部分

第一步:下载代码

打开命令行工具输入以下命令行,从google 的codelabs下载代码:1git clone https://github.com/googlecodelabs/tensorflow-for-poets-2

下载完后,会生成一个叫“tensorflow-for-poets”的文档夹。

2018-10-18-001.png

文档夹内容的组成如下:scripts—–包含机器学习的python代码文档

tf_files—–包含输出文档,比如graph.pb和labels.txt

android—–包含安卓app项目,又分为tfmobile和TFLite

iOS—-包含ios App的项目,需要使用xCode

第二步:下载数据集

点击下载链接,下载约200MB的公开数据集,该数据集包含五种分类的花:Rose(玫瑰花)、Daisy(雏菊)、Dandelion(蒲公英)、Sunflower(向日葵)

解压缩到tf_files > flowes_photos目录

第三步:重新训练模型

在tensorflow-for-poets-2目录中打开命令行工具,输入:1python scripts/retrain.py --output_graph=tf_files/retrained_graph.pb --output_labels=tf_files/retrained_labels.txt --image_dir=tf_files/flower_photos --architecture=mobilenet_1.0_224 --summaries_dir tf_files/training_summaries/mobilenet_1.0_224

然后开始下载预训练的Mobilenet_1.0_224 的 frozen graph ;并且在tf_files目录中生成 retrained_graph.pb 和retrained_labels.txt 文档

2018-10-18-002.png

2018-10-18-003.png

第四步:打开Tensorboard(可跳过)

在Tensorboard中可以观察准确度和交叉熵损失函数的变化。1tensorboard --logdir=tf_files/training_summaries/mobilenet_1.0_244

2018-10-18-004.png

第五步:确认模型的有效性

从互联网随机下载一张花的图片,放入工作目录中,查看模型识别结果1python scripts/label_image --graph=tf_files/retrained_graph.pb --image=new_rose.jpg

2018-10-18-006.png

2018-10-18-005.png

第六步:将模型转成TFLIte格式

系统要求:Ubuntu

Toco 使用来将pb文档文档转成.lite格式文档的转换器,更多细节可以使用 toco –help 查看说明。1

2

3IMAGE_SIZE=224

toco --graph_def_file=tf_files/retrained_graph.pb --output_file=tf_files/optimized_graph.lite --output_format=TFLITE --input_shape=1,${IMAGE_SIZE},${IMAGE_SIZE},3 --input_array=input

--output_array=final_result --inference_type=FLOAT --inference_input_type=FLOAT

上述命令会在tf_files目录中生成optimized_graph.lite 文档

tips: 1)--input_file 已经更新成 –graph_def_file 2)–input_format 对于mobile_net 的计算图没有必要性

移动端部分

Android

第一步:模型和标签的替换

将 tf_files 中生成的 optimized_graph.lite 和 retrained_labels.txt,复制到android >tflite项目的assets中,并替换原有的graph.lite 和 labels.txt 文档1

2

3cp tf_files/optimized_graph.lite android/tflite/app/src/main/assets/graph.lite

cp tf_files/retrained_labels.txt android/tflite/app/src/main/assets/labels.txt

第二步:生成app

打开Android Studio,并打开已有项目,选中android/tflite目录,点击BUILD–>Bulid APK, app-debug.apk文档就会产生,然后安装到安卓手机上。

2018-10-18-007.png

IOS安装Xcode1xcode-select --install

安装Cocoapods1sudo gem install cocoapods

安装 TFlite Cocoapod1pod install --project-directory=ios/tflite/

替换模型和文档1

2cp tf_files/optimized_graph.lite ios/tflite/data/graph.lite

cp tf_files/retrained_labels.txt ios/tflite/data/labels.txt

打开模拟器,运行项目,查看结果。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于使用TensorFlow 2.3训练数字识别模型并将其量化为TFLite,然后部署到OpenMV上,你可以按照以下步骤进行操作: 1. 数据集准备:收集和准备用于数字识别的图像数据集。确保数据集具有适当的标签和类别。 2. 模型训练使用TensorFlow 2.3构建和训练适合数字识别的模型,例如卷积神经网络(CNN)。确保在训练过程中使用适当的评估指标和优化算法。 3. 模型量化:在训练完成后,将训练好的模型量化为TFLite格式。TFLite是一种针对移动和嵌入式设备的轻量级模型表示形式。 ```python import tensorflow as tf # 加载训练好的模型 model = tf.keras.models.load_model('trained_model.h5') # 量化模型 converter = tf.lite.TFLiteConverter.from_keras_model(model) converter.optimizations = [tf.lite.Optimize.DEFAULT] tflite_model = converter.convert() # 保存量化后的模型 with open('quantized_model.tflite', 'wb') as f: f.write(tflite_model) ``` 4. OpenMV准备:确保你已经按照OpenMV官方文档的指导,设置并准备好OpenMV开发环境。 5. 部署到OpenMV:将量化后的TFLite模型部署到OpenMV上进行推理。可以使用OpenMV的MicroPython编程语言进行开发。 - 将`quantized_model.tflite`文件复制到OpenMV设备上,例如SD卡。 - 在OpenMV上编写MicroPython代码,加载模型并进行推理。 ```python import sensor import image import lcd # 初始化OpenMV模块 sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.run(1) # 加载TFLite模型 import tf model = tf.load('quantized_model.tflite') # 进行推理 while True: img = sensor.snapshot() # 对图像进行预处理 # ... # 进行推理 output = model.forward(img) # 处理推理结果 # ... ``` 这个过程中,你需要根据你的具体需求和OpenMV设备的要求进行适当的调整和修改。上述步骤仅供参考,你可以根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值