'模型'对象没有属性'load_model'

Eri*_*ric 1 deep-learning conv-neural-network keras tensorflow

我正在尝试加载与之一起保存的模型: model.save('myModel.h5')

该模型的定义如下:

self.model = VGGFace(input_tensor=input_tensor, include_top=True)

for layer in self.model.layers:
    layer.trainable = False

self.model.get_layer('fc7').trainable = True
last_layer = self.model.get_layer('fc7').output
out = BatchNormalization()(last_layer)
out = Dense(self.n_outputs, activation='softmax', name='fc8')(out)
self.model = Model(input=self.model.input, output=out)
Run Code Online (Sandbox Code Playgroud)

当我尝试加载myModel.h5model.load_model('myModel.h5')会引发以下错误:

AttributeError: 'Model' object has no attribute 'load_model'
Run Code Online (Sandbox Code Playgroud)

我认为这是因为我不使用Sequential模型。

那我该如何加载我的模型?由于model.save('myModel.h5')似乎工作。

谢谢!!!!

Nas*_*Ben 5

load_model()确实不是模型对象的属性。load_model()是从keras.models导入的函数,该函数采用文件名并返回模型对象。

您应该这样使用它:

from keras.models import load_model

model = load_model(path_to_model)
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用keras.models.load_model(filepath)重新实例化模型。load_model还将负责使用保存的训练配置来编译模型(除非从未首先编译过模型)。从来源