属性错误:'Node'对象在 Keras 中没有属性'output_masks'



我想在我的CNN模型中添加一个Dropout层,如下所示(以黄色突出显示(:

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()

它返回了

属性

错误:"节点"对象没有属性"output_masks">

我想可能是我用了Kerastf.keras但我不确定。

您可以使用以下代码执行此操作。当您使用 keras 函数式 API 时。您应该通过提供输入和输出来以这种方式添加dropout层

layer6=Dropout(0.25)(layer6)

在上面的行中,我将 layer6 作为 dropout 层的输入,其结果被保存到同一层 6。layer6.add(( 应该在使用 keras 顺序 API 时使用,而不是用于函数式 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()

相关内容

最新更新