使用TensorFlow Lite在Android手机上实现图像分类
2019-08-12 14:06
2231 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qionggaobi9328/article/details/99297473
按下列参考链接安装必要的环境和步骤(以第一个为主):
https://blog.csdn.net/qq_33200967/article/details/82773677
https://blog.csdn.net/aslily1234/article/details/84840885
转换模型关键步骤:把tensorflow保存的其他模型转换成tflite
1.在以下的链接下载模型:(最好在windows用迅雷下载)
tensorflow模型:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md
https://github.com/tensorflow/models/tree/master/research/slim#pre-trained-models
2.上面提供的模型同时也包括了tflite模型,我们可以直接拿来使用,但是我们也可以使用其他格式的模型来转换。比如我们下载一个mobilenet_v1_1.0_224.tgz,解压之后获得以下文件:
mobilenet_v1_1.0_224.ckpt.data-00000-of-00001 mobilenet_v1_1.0_224_eval.pbtxt mobilenet_v1_1.0_224.tflite mobilenet_v1_1.0_224.ckpt.index mobilenet_v1_1.0_224_frozen.pb mobilenet_v1_1.0_224.ckpt.meta mobilenet_v1_1.0_224_info.txt
3.冻结图:
./freeze_graph --input_graph=/mobilenet_v1_1.0_224/mobilenet_v1_1.0_224_frozen.pb \ --input_checkpoint=/mobilenet_v1_1.0_224/mobilenet_v1_1.0_224.ckpt \ --input_binary=true \ --output_graph=/tmp/frozen_mobilenet_v1_224.pb \ --output_node_names=MobilenetV1/Predictions/Reshape_1
- input_graph对应的是.pb文件;
- input_checkpoint对应的是mobilenet_v1_1.0_224.ckpt.data-00000-of-00001,但使用时去掉后缀;
- output_node_names这个可以在mobilenet_v1_1.0_224_info.txt中获取。
不过要注意的是我们下载的模型已经是冻结过来,所以不用再执行这个操作。但如果是其他的模型,要先冻结图,然后再执行之后的操作。
4.把已经冻结的图转换成.tflite:
#将.pb文件转化为.tflite文件: bazel run tensorflow/lite/toco:toco -- --input_file=/home/dj/dingjing/tensorflow_py3/Mobilenet/mobilenet_v1.0/mobilenet_v1_1.0_224_frozen.pb --input_format=TENSORFLOW_GRAPHDEF --output_format=TFLITE --output_file=/home/dj/dingjing/tensorflow_py3/Mobilenet/mobilenet_v1.0/mobilenet_v1_1.0_224.tflite --inference_type=FLOAT --input_type=FLOAT --input_arrays=input --output_arrays=MobilenetV1/Predictions/Reshape_1 --input_shapes=1,224,224,3
- input_file是已经冻结的图;
- output_file是转换后输出的路径;
- output_arrays这个可以在mobilenet_v1_1.0_224_info.txt中获取;
- input_shapes这个是预测数据的shape
5.成功:
经过上面的步骤就可以获取到mobilenet_v1_1.0_224.tflite模型了。
相关文章推荐
- Android中使用TensorFlow Lite实现图像分类
- 【深度学习】keras + tensorflow 实现猫和狗图像分类
- android iphone手机服务端接口(php实现,使用框架fat-free,解说例子blog)
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- Android实现一个APP只能在一部手机上使用
- Android使用ksoap2调用C#中的webservice实现图像上传
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- Android 使用Socket实现服务器与手机客户端的长连接七:定义消息体,区分是响应还是回复信息
- Ubuntu 使用 Android Studio 编译 TensorFlow android demo
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- 【Android开发】范例1-使用表格布局与线性布局实现分类工具栏
- 使用TensorFlow实现一个文本分类的卷积神经网络Implementing a CNN for Text Classification in TensorFlow
- 使用 flow.ci 实现 Android 自动化测试与持续集成
- Android 仿美团网,探索使用ViewPager+GridView实现左右滑动查看更多分类的功能
- Android 仿美团网,探索使用ViewPager+GridView实现左右滑动查看更多分类的功能
- Android 使用Socket实现服务器与手机客户端的长连接一:一对一聊天
- Android Fragment完全解析及:: Android手机平板使用Fragment实现兼容手机和平板的程序
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序