这是stackoverflow上一个问答
https://stackoverflow.com/questions/59375679/tensorflow-pb-format-to-keras-h5?answertab=oldest#tab-top
回答中
import os
import tensorflow as tf
from tensorflow.keras.preprocessing import image
New_Model = tf.keras.models.load_model('Dogs_Vs_Cats_Model') # Loading the Tensorflow Saved Model (PB)
print(New_Model.summary())
# Saving the Model in H5 Format and Loading it (to check if it is same as PB Format)
tf.keras.models.save_model(New_Model, 'New_Model.h5') # Saving the Model in H5 Format
loaded_model_from_h5 = tf.keras.models.load_model('New_Model.h5') # Loading the H5 Saved Model
print(loaded_model_from_h5.summary())
但是我尝试报错了,index out of range
原因是,我的模型不是基于tf.keras保存的,是基于tf.estimator写的,所以保存的文件不能通过tf.keras.models.load_model()加载;
解决方法
将tf.keras.models.load_model()替换成tf.saved_model.load()
tf.keras.models.save_model()替换成tf.saved_model.save()