【发布时间】:2021-05-28 06:28:23
【问题描述】:
我在 Keras 中创建了以下简单的 CNN(借自 DeepLizard 教程)。
model = Sequential([
Conv2D(filters = 10, kernel_size = (3, 3), activation = 'relu', padding = 'same', input_shape = (320, 320, 3)),
MaxPool2D(pool_size = (2, 2), strides = 2),
Conv2D(filters = 10, kernel_size = (3, 3), activation = 'relu', padding = 'same'),
MaxPool2D(pool_size = (2, 2), strides = 2),
Flatten(),
Dense(20, activation = 'softmax'),
])
model.summary()
model.compile(optimizer = Adam(lr = 0.0001), loss = 'categorical_crossentropy', metrics =['accuracy'])
model.fit(x = train_batches, validation_data = valid_batches, epochs = 10, verbose = 2)
predictions = model.predict(x = test_batches, verbose = 0)
如您所见,我将模型生成的预测保存到名为“predictions”的数据框中。但我也有兴趣保存每个 MaxPool2D 层、Conv2D 层和 flatten 层的输出。有没有一种方法可以将这些图层的输出也保存到数据框/列表中? Keras 中是否有此功能?
谢谢!
【问题讨论】:
-
这些层的输出是特征图。那么,你想保存特征图吗?这些可以保存为列表或数组。
-
是的,我希望为我呈现给模型的每个输入保存特征图。另外,展平层不应该只是一个长度等于展平层大小的单个数组吗?
-
这能回答你的问题吗? Keras, How to get the output of each layer?
标签: python tensorflow keras conv-neural-network