使用预训练的VGG

时间:2020-06-23 15:22:36

标签: tensorflow keras deep-learning cnn vgg-net

我想使用带有预训练的VGG19的多流CNN。 我的代码出现错误。请帮我提供正确的代码。

这是我的代码段

   ecg_cnn =VGG19(weights="imagenet", include_top=False, input_tensor=Input(shape=input_shape,name="ecg"))
    
    for layer in ecg_cnn.layers:
      layer.trainable = False
    
    out1= ecg_cnn.output 
    
    ppg_cnn = VGG19(weights="imagenet", include_top=False, input_tensor=Input(shape=input_shape,name="ppg"))
    
    for layer in ppg_cnn.layers:
      layer.trainable = False
    
    out2= ppg_cnn.output 
    
       
    con = Concatenate()([out1, out2])

    out=Flatten()(con)
    out=(Dense(4096))(out)
    out=(Activation('tanh'))(out)
    out=(Dropout(0.4))(out)
      
   # Output Layer
   out = Dense(3, activation='softmax')(out)

   model = Model(inputs=[ecg_cnn.input, ppg_cnn.input], outputs=[out])
 
   model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])
    

我得到的错误是:

ValueError: The name "block1_conv1" is used 2 times in the model. All layer names should be unique.

1 个答案:

答案 0 :(得分:1)

您可以解决只需更改图层名称

input_shape = (224,224,3)
ecg_cnn = VGG19(weights="imagenet", include_top=False, 
                input_tensor=Input(shape=input_shape,name="ecg"))

for layer in ecg_cnn.layers:
    layer.trainable = False
    layer._name = layer._name + '_vgg19_1' # <===========

out1 = ecg_cnn.output 

ppg_cnn = VGG19(weights="imagenet", include_top=False, 
                input_tensor=Input(shape=input_shape,name="ppg"))

for layer in ppg_cnn.layers:
    layer.trainable = False
    layer._name = layer._name + '_vgg19_2' # <===========

out2= ppg_cnn.output 


con = Concatenate()([out1, out2])

out=Flatten()(con)
out=(Dense(4096))(out)
out=(Activation('tanh'))(out)
out=(Dropout(0.4))(out)

# Output Layer
out = Dense(3, activation='softmax')(out)

model = Model(inputs=[ecg_cnn.input, ppg_cnn.input], outputs=[out])

model.compile(loss='categorical_crossentropy',
          optimizer='sgd',
          metrics=['accuracy'])
相关问题