受惠於深度学习框架的多元性,开发者可以选自己喜欢的框架,
像是: Theano、Caffe、ONNX、Keras、Tensorflow、Pytorch、DL Spark、Paddle...
光是最知名的两大套件就有令人眼花撩乱的模型储存格式,
Tensorflow有.h5
、.hdf5
、.ckpt
、.pb
Pytorch有.pt
、.pth
、.pkl
当然是.tflite
!
Google在2017年推出针对手机端的神经网络计算框架TensorFlow Lite。
所以TFLite有那些优点呢?
让模型轻量化,model quantization
是一个很简单的方法,
原理是将参weghts的储存位元数下降。
例如: 把 float32 映射到 int8
我们过去二十天来都是用tf.keras在训练模型,
tf.keras的Model class可以用TFLiteConverter
转成.tflite。
程序码如下:
def save_model(model, save_name="mymodel"):
"""
model : Keras Model class
save_name : str
"""
# 储存模型-tf格式
# Convert the model.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
# Save the model.
with open("./" + save_name + ".tflite", 'wb') as f:
f.write(tflite_model)
# 储存模型-keras格式
model.save("./" + save_name + ".h5")
储存模型只是应用深度学习的第一步,
我们获得轻量化的模型就是为了能够把模型部署在边缘装置上,
但我只有Android手机
未完待续...
<<: Day 21:在 Hexo 增加作者版权声明(使用 Next 布景)
使用组件跟组件的组合 , 形成一个页面 势必会遇到经典的组件传值 issue (下图左侧) 以大家常...
由於我们可藉由产生带重叠范围的配对请求,而这些配对请求将并发(Concurrently)的触发 MM...
【前言】 大家安安,今天的主题经过 MetaMask 强大的功能之後其实是可以省略的。开玩笑的,反...
这功能对於浏览器来说,应该是个没人(或很少人)想过会存在的功能。 从十几二十年前开始有浏览器以来,浏...
本文同步更新於blog Builder Pattern 将复杂对象的构建与其表示分离。 建造者模式...