1.mobilenetv2生成.tflite文件,tensorflow2.1 ,在mobilenet的train.py中添加如下代码(且安卓源代码是针对非量化模型的,将量化模型那一步注释掉,再生成.tflite文件,否则精度损失较大,模型预测结果不好)
# keras model 保存为 TFLite
keras_to_tflite_converter = tf.lite.TFLiteConverter.from_keras_model(model)
# 量化tflite 模型,可以在损失较小精度或不影响精度的情况下减小模型大小
#keras_to_tflite_converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_SIZE]
keras_tflite = keras_to_tflite_converter.convert()
if not os.path.exists('./tflite_models'):
os.mkdir('./tflite_models')
# with open('./tflite_models/keras_tflite', 'wb') as f:
# f.write(keras_tflite)
# 保存量化的 tflite 模型
with open('./tflite_models/flower_mobilev2_keras.tflite', 'wb') as f:
f.write(keras_tflite)
2.将生成的.tflite文件放到
D:\Desktop\paper\A-test\TestTFLite\app\build\intermediates\assets\debug
文件夹下,并且新建类别标签文档cacheLabel。
3.在Android studio中打开
D:\Desktop\paper\A-test\TestTFLite\app\src\main\java\com\yeyupiaoling\testtflite
中的MainActivity.java文件
在文件中POOLE_MODEL函数中添加.tflite文件的模型名称,
原文件中类别数目为1001,根据现在训练模型的类别数目进行更改。
至此,运行代码即可。
原文链接:使用TensorFlow Lite在Android手机上实现图像分类_夜雨飘零-CSDN博客_android 图片分类