进行深度学习网络训练时,有着可视化设计、简化训练过程、高效的编程、自动化参数选择、高度可扩展、和深度学习工具完美结合等优势,是一种非常强大的深度学习工具。
tflite格式网络是一种高效的轻量级神经网络模型格式,它被设计用于在移动设备、嵌入式设备等资源受限的环境中进行推理。tflite格式模型结构轻量,模型大小相对较小,可以在移动设备上进行分布式推理,具有更高的性能和更短的响应时间。
当需要把matlab的预训练网络或者训练好的网络部署到移动设备时,神经网络的格式转换就是其中必不可少的一部分。详细过程如下:
1、将深度学习工具箱网络或层图导出到 TensorFlow:
exportNetworkToTensorFlow(net,modelPackage)
导出 MATLAB 深度学习网络,并将其作为 TensorFlow™ 模型保存在 Python 包中。(详细信息可以点击链接到MATLAB官网查看。)
% Load pretrained network
%加载预训练网络resnet50
net = resnet50();
%需要的话将resnet50转为onnx格式
exportONNXNetwork(net,"resnet50.onnx");
%将resnet50网络转为tensorflow的python包 生成一个文件夹
exportNetworkToTensorFlow(net,"resnet50");
%首先生成训练集imds或者特征向量及标签trainingFeatures and trainingFeatures,自定义训练网络net和选项options
%训练网络
net1 = trainNetwork(trainingFeatures,trainingFeatures,net,options);
%生成net1的tensorflow文件夹
exportNetworkToTensorFlow(net1,"net1");
2、将 TensorFlow模型所在的 Python 包转为tflite格式,需要使用的TensorFlow库和NumPy库可以按提示下载。
import numpy as np
#在MATLAB保存的tensorflow包名称
import net1
import tensorflow as tf
# Step 1: 加载 Keras 模型
net1_model = net1.load_model()
# Step 2: 转换模型为 TFLite 格式
converter = tf.lite.TFLiteConverter.from_keras_model(net1_model)
net1_tflite = converter.convert()
# Step 3: 保存 TFLite 模型 命名为net1.tflite
with tf.io.gfile.GFile('net1.tflite', 'wb') as f:
f.write(net1_tflite)
3、最后生成的tflite文件,可以直接导入AS中的项目中进行使用,当然需要提前在gradle文件中添加依赖项进行下载 然后引用tflite相关包才能达到目的。关于怎么在AS中使用导入的tflite文件进行分类,我后面会出一篇文章详细聊聊。
欢迎讨论~ღ