0、引言
由于nnc模型量化工具对tflite格式支持较好,同时还支持.caffemodel与.onnx格式(未测),故需在电脑上将训练完成的模型转换为tflite格式后再进行量化,生成kmodel格式模型供K210单片机使用。
有关ncc_0.2相关使用,可以见该篇文章(留坑),或详见GitHub网页
1、保存HDF5模型
以下代码为HDF5手写数字识别的代码,模型采用全连接层构成,使用relu为激活函数,使用“Dropout”和“提前停止”两种方法防止模型过拟合,同时增加模型泛化能力。
需要注意的是,由于mnist数据集是二维数组,而非图片,所以生成的模型无法使用ncc量化,但是可以通过设置float进行转换为kmodel,同时失去KPU加速能力。
import os
import tensorflow as tf
from tensorflow import keras
print(tf.version.VERSION)
#加载数据集(训练集、测试集)
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()
#使用前1000个数据
train_labels = train_labels[:1000]
test_labels = test_labels[:1000]
#类归一化处理,将图像深度从0-255变为0-1
train_images = train_images[:1000].reshape(-1, 28 * 28) / 255.0
test_images = test_images[:1000].reshape