![4e5d5884bb48edf967e6b1f8e69d4630.png](https://img-blog.csdnimg.cn/img_convert/4e5d5884bb48edf967e6b1f8e69d4630.png)
Tensorflow 2.0.0出来后,1.x版本的API有些已经改变,19年年初写的这一篇《TensorFlow Serving + Docker + Tornado机器学习模型生产级快速部署》 文章,在tf 2.0.0版本里面有较大的变动,另外Tensorflow官方也推荐大家使用tf.keras,因此本文将会教大家如何使用tensorflow serving部署keras模型,适用tensorflow 2.0.0以后的版本。注:下面“tensorflow serving”将会简写为“tfs”。
导出Keras模型
keras模型训练完毕后,一般我们都会使用model.save(filepath)储存为h5文件,包含模型的结构和参数,而我们需要把这个h5文件导出为tensorflow serving所需要的模型格式:
from keras import backend as K
from keras.models import load_model
import tensorflow as tf
# 首先使用tf.keras的load_model来导入模型h5文件
model_path = 'v7_resnet50_19-0.9068-0.8000.h5'
model = tf.keras.models.load_model(model_path, custom_objects=dependencies)
model.save('models/resnet/', save_format='tf') # 导出tf格式的模型文件
注意,这里要使用tf.keras.models.load_model来导入模型,不能使用keras.models.load_model,只有tf.keras.models.load_model能导出成tfs所需的模型文件。导出的文件路径结构如下:
.
└── 0
├── assets
├── saved_model.pb
└── variables
├── variables.data-00000-of-00002
├── variables.dat