小编Gre*_*ung的帖子

AttributeError: 'tuple' 对象在尝试使用 keras 进行迁移学习时没有属性 'layer'

我正在尝试使用 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: …

python keras tensorflow transfer-learning

4
推荐指数
1
解决办法
3300
查看次数

Keras?load_model ValueError:轴与数组不匹配

我正在用我自己的数据集的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 …

python deep-learning keras

2
推荐指数
1
解决办法
2577
查看次数