我想在我的Dropout
模型中添加一个CNN
层,如下所示(以黄色突出显示):
inputs_1 = keras.Input(shape=(10081,1))
layer1 = Conv1D(64,14)(inputs_1)
layer2 = layers.MaxPool1D(5)(layer1)
layer3 = Conv1D(64, 14)(layer2)
layer4 = layers.GlobalMaxPooling1D()(layer3)
inputs_2 = keras.Input(shape=(84,))
layer5 = layers.concatenate([layer4, inputs_2])
layer6 = Dense(128, activation='relu')(layer5)
layer6.add(Dropout(0.25))(已屏蔽)
layer7 = Dense(2, activation='softmax')(layer6)
model_2 = keras.models.Model(inputs = [inputs_1, inputs_2], output = [layer7])
model_2.summary()
它返回
AttributeError:“节点”对象没有属性“输出掩码”
我想可能是我使用了Keras
和tf.keras
,但我不确定。
答案 0 :(得分:0)
您可以使用以下代码执行此操作。当您使用keras功能性API时。您应该通过提供输入和输出
来自行添加辍学层layer6=Dropout(0.25)(layer6)
在上面的代码行中,我将layer6用作退出层的输入,并将其结果保存到同一layer6。当您使用keras顺序API时,应该使用layer6.add(),而不是用于功能性API。
下面给出了完整的更新代码。
inputs_1 = keras.Input(shape=(10081,1))
layer1 = Conv1D(64,14)(inputs_1)
layer2 = layers.MaxPool1D(5)(layer1)
layer3 = Conv1D(64, 14)(layer2)
layer4 = layers.GlobalMaxPooling1D()(layer3)
inputs_2 = keras.Input(shape=(84,))
layer5 = layers.concatenate([layer4, inputs_2])
layer6 = Dense(128, activation='relu')(layer5)
layer6=Dropout(0.25)(layer6)
layer7 = Dense(2, activation='softmax')(layer6)
model_2 = keras.models.Model(inputs = [inputs_1, inputs_2], output = [layer7])
model_2.summary()