无入站节点 - Keras CNN 模型

No Inbound Nodes - Keras CNN Model

我在 keras 中训练了一个具有以下结构的 CNN 模型

model_11 = Sequential()

#Convolutional Layers
model_11.add(Reshape((55, 1)))
model_11.add(Conv1D(50, kernel_size=5, strides=1, padding="same", activation = 'relu'))
model_11.add(Conv1D(24, kernel_size=4, strides=5, padding="same", activation = 'relu'))
model_11.add(Conv1D(23, kernel_size=2, strides=1, padding="same", activation = 'relu'))

#Dense Layers
model_11.add(Flatten())
model_11.add(Dense(units=30, activation='relu'))
model_11.add(Dense(units=15, activation='relu'))

model_11.add(Dense(units=1, activation='sigmoid'))

#Compile model
model_11.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

#Fit the model
model_11.fit(X_train, y_train, epochs=20, batch_size=20)



现在,我尝试了以下

model_11.layers[-3].output



这给了我以下错误

AttributeError: Layer dense_40 has no inbound nodes.



有很多关于多个入站节点的解决方案,但到目前为止我还没有看到任何没有入站节点的解决方案。尽管如此,该模型运行良好(二元分类)。

这是因为当你定义一个Sequential而不指定第一层的输入形状时,计算图只在fit函数期间创建,因此层的输入和输出张量(因此节点)不计算。

如果您需要访问层的输出张量,请在顺序模型中指定第一层的输入形状。因此第一层定义为:

model_11.add(Reshape((55, 1), input_shape=(55,))

现在 model_11.layers[-3].output 将 return 张量。