https://blog.csdn.net/weixin_35848967/article/details/109331651
https://github.com/kendryte/nncase/blob/master/docs/USAGE_ZH.md
0、引言由于nnc模型量化工具对tflite格式支持较好,同时还支持.caffemodel与.onnx格式(未测),故需在电脑上将训练完成的模型转换为tflite格式后再进行量化,生成kmodel格式模型供K210单片机使用。有关ncc_0.2相关使用,可以见该篇文章(留坑),或详见GitHub网页1、保存HDF5模型以下代码为HDF5手写数字识别的代码,模型采用全连接层构成,使用relu为激活函数,使用“Dropout”和“提前停止”两种方法防止模型过拟合,同时增加模型泛化能力。需要注意的是,由
def read_image_data(filename):
infile = open(filename, "rb")
magic_number = bytes_to_uint32(infile.read(4))
image_nu.
output_model_file=os.path.join(logdir,"fashion_mnist_weights.h5")#在logdir中创建一个模型文件.h5
#定义一个callbacks数组
callbacks = [
keras...
直接修改callback的参数列表,9-2。
使用tf.SavedModel()保存模型
使用!saved_model_cli show --dir 路径 --all查看保存内容,可以看到关于输入和输出的签名信息。
使用命令行验证模型保存是否正确:
!saved_model_cli run--dir 路径 --tag_set serve --signature_def servin...
深度学习迅猛发展,目前已经可以移植到移动端使用了,TensorFlow推出的TensorFlow Lite就是一款把深度学习应用到移动端的框架技术。
使用TensorFlowLite 需要tflite文件模型,这个模型可以由TensorFlow训练的模型转换而成。所以首先需要知道如何保存训练好的TensorFlow模型。
一般有这几种保存形式:
Checkpoints
SavedM...
bazel build tensorflow/python/tools:freeze_graph && \
bazel-bin/tensorflow/python/tools/freeze_graph \
--input_graph=eval_graph_def.pb \
--input_checkpoint=che...
mode_file = "xxx_model.h5"
#如果网络不存在备份文件,创建一个保存,路径可以自己定义
if not os.path.exists('xxx_model.h5'):
print('=======================保存网络模型=======================')
model.save('xxx_model.h5')
我们用keras训练模型后,通常保存的模型格式类型为hdf5格式,也就是.h5文件。
但如果我们想要移植到移动端,特别是基于tensorflow支持的移动端,那就需要转换成tflite格式。
如何转换呢?在tensorflow1.9及以上版本,支持通过命令行方式方便进行转换:
tflite_convert --output_file=/home/yourname/Documents/te...
NNCase v0.2.0 Beta4
1.首先要下载NNCase工具箱.
2.创建一个文件夹,将下载好的ncc.exe,.tflite文件,训练模型时的图片(5张即可)放入文件夹内.
3.打开cmd,并打开当前文件夹
ncc compile <.tflite的文件名称> <.kmodel的文件名称> -i
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10)
# 编译模型
model.compile(optimizer=tf.keras.optimizers.Adam(.01),
loss=tf.keras.losses.CategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=5)
# 保存模型参数
model.save_weights('model_weights.h5')
在训练完成后,可以使用 `model.save_weights()` 方法来保存模型参数。这个方法会将模型参数保存到一个 HDF5 文件中,可以在以后重新加载模型时使用。