我正在尝试使用 keras 模型进行迁移学习,但一直坚持向模型添加新层。我试过下面的代码:
prev_model = load_model('final_model.h5') # loading the previously saved model.
new_model = Sequential()
new_model.add(prev_model)
new_model.add(Dense(256,activation='relu'))
new_model.add(Dropout(0.5))
new_model.add(Dense(1,activation='sigmoid'))
Run Code Online (Sandbox Code Playgroud)
但得到:
TypeError: The added layer must be an instance of class Layer. Found: <tensorflow.python.keras.layers.core.Flatten object at 0x00000000B74364A8>
Run Code Online (Sandbox Code Playgroud)
每当我使用.add()添加图层时都会发生这种情况。
然后我发现
number_of_layers_to_freeze = 10
vgg_model = VGG16(include_top=False)
for i in range(number_of_layers_to_freeze):
vgg_model.layers[i].trainable = False
vgg_output = vgg_model.outputs[0]
output = keras.layers.Dense(10, activation="softmax")(vgg_output)
model = keras.models.Model(inputs=vgg_model.inputs, outputs=output)
Run Code Online (Sandbox Code Playgroud)
在其他职位。但它导致
AttributeError: 'tuple' object has no attribute 'layer'
Run Code Online (Sandbox Code Playgroud)
我目前正在使用
keras 2.2.5
tensorflow-gpu 1.14.0
Run Code Online (Sandbox Code Playgroud)
是不是版本冲突导致的?
完整回溯 :(AttributeError: …
我正在用我自己的数据集的keras-gan / wgan-gp示例研究gan 。我保存模型
wgan.generator.save('generator.h5')
wgan.critic.save('critic.h5')
并加载
model = load_model('generator.h5')
model = load_model('critic.h5')
但这只在第一时间有效。当我在第二次训练后再次保存模型并运行时
model = load_model('generator.h5')
model = load_model('critic.h5')
再次,错误发生?
()中的ValueError追溯(最近一次调用是最近一次)----> 1模型= load_model('generator.h5')
D:load_model(文件路径,custom_objects,编译)中的D:\ keras \ engine \ saving.py 262263#设置权重-> 264 load_weights_from_hdf5_group(f ['model_weights'],model.layers)265266如果编译为:
D:load_weights_from_hdf5_group中的D:\ keras \ engine \ saving.py(f,层,重塑)914 original_keras_version,915 original_backend,-> 916 reshape = reshape)917 if len(weight_values)!= len(symbolic_weights):918提高ValueError( '图层#'+ str(k)+
D:\ keras \ engine \ saving.py在preprocess_weights_for_loading中(图层,权重,original_keras_version,original_backend,重塑)555权重= convert_nested_time_distributed(weights)556 elif层。上课。名称在[ '模型', '顺序']: - >权重557 = convert_nested_model(权重)558 559如果original_keras_version == '1':
在convert_nested_model中的D:\ keras \ engine \ saving.py(权重)543 …