【发布时间】:2018-10-05 04:56:20
【问题描述】:
我正在尝试绘制两件事:
1) 应用每个过滤器后的输出(在“Conv2D(32, (3,3)....) 的情况下总共有 32 个输出)
2) 在学习时学习/生成的过滤器(如上所述,共有 32 个过滤器)
下面是我的代码和演示图像是: Sample Image
首先我刚刚阅读了一张图片:
import cv2
import matplotlib.pyplot as plt
%matplotlib inline`
plt.imshow(face)
cv2.waitKey(0)
然后我用 Keras 创建了简单的 1 层 CNN:
from keras.models import Sequential
from keras.layers import Conv2D
import numpy as np
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape = face.shape, padding='valid', activation = 'relu'))
face_batch = np.expand_dims(face, axis=0)
conv_face = model.predict(face_batch)
def visualize_face(face_batch):
face = np.squeeze(face_batch, axis=0)
print (face.shape)
plt.imshow(face[:,:,31])
对于我想要可视化的过滤器,上面的最后一行从 0 到 31(总共 32 个过滤器)不等。那么最终的单元格将是:
print(np.squeeze(conv_face, axis=0).shape)
visualize_face(conv_face)
那么这是一种可视化应用于图像的过滤器输出的正确方法吗?
现在回到我的第二个问题:
我正在尝试绘制模型在获取这些输出时学习的所有 32 个过滤器。那么有人可以帮我查询吗?
提前谢谢你:)
【问题讨论】:
标签: python filter conv-neural-network layer