受惠於深度學習框架的多元性,開發者可以選自己喜歡的框架,
像是: 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手機
未完待續...