Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 无法加载SavedModel_Tensorflow_Keras_Tensorflow2.0 - Fatal编程技术网

Tensorflow 无法加载SavedModel

Tensorflow 无法加载SavedModel,tensorflow,keras,tensorflow2.0,Tensorflow,Keras,Tensorflow2.0,我正在使用tf.keras训练一些模型,并希望保存训练过的模型。推荐使用两种方法,tfSavedModel和keras.h5文件。然而,SavedModel会让事情变得非常混乱 以下是一些简短的脚本来重现该问题: 将numpy导入为np 导入tensorflow作为tf def my_network(): 主干网\模型=tf.keras.applications.InceptionResNetV2( 包括\u top=False,输入\u shape=(2242243),weights=“ima

我正在使用tf.keras训练一些模型,并希望保存训练过的模型。推荐使用两种方法,tf
SavedModel
和keras
.h5
文件。然而,
SavedModel
会让事情变得非常混乱

以下是一些简短的脚本来重现该问题:

将numpy导入为np
导入tensorflow作为tf
def my_network():
主干网\模型=tf.keras.applications.InceptionResNetV2(
包括\u top=False,输入\u shape=(2242243),weights=“imagenet”,pooling=“avg”
)
输入=tf.keras.layers.Input(shape=(2242243),name=“images”)
主干网功能=主干网模型(输入)
预埋=tf.keras.layers.Dense(
512,
激活=无,
name=“预埋”,
kernel_regularizer=tf.keras.regularizers.l2(),
)(主要功能)
嵌入=tf.keras.layers.Lambda(
lambda x:tf.math.l2_normalize(x,1,1e-10),name=“嵌入”
)(预埋件)
probs=tf.keras.layers.Dense(
1000,
activation=“softmax”,
name=“预测”,
kernel_regularizer=tf.keras.regularizers.l2(),
bias_regularizer=tf.keras.regularizers.l2(),
)(预埋件)
返回tf.keras.Model(输入,[embeddings,probs],name=“my_network”)
img_arr=np.random.rand(1224224,3)
resnet\u model=my\u network()
emb_1,_=resnet_model.predict(img_arr)
resnet\u model.save(“./resnet\u model.h5”)
新模型=tf.keras.models.load模型('./resnet_model.h5')
emb_2,_=新的_模型。预测(img_arr)
np.测试.断言数组几乎相等(emb_1,emb_2)
上述脚本将正常工作,不会出现错误。但是,当我尝试以
SavedModel
格式保存时(通过从模型路径中删除
.h5
),它失败了。模型已成功保存,但在加载时引发错误,错误消息为:

NotImplementedError: When subclassing the `Model` class, you should implement a `call` method.

我很困惑,因为我没有使用任何子类模型。如脚本所示,我的网络仅使用功能API构建。

您的tf版本是什么?我使用的是从最新的pip包安装的TF2.1。您的tf版本是什么?我使用的是从最新的pip包安装的TF2.1