我想绘制两个东西。
1) 应用每个过滤器后的输出(Conv2D(32,(3,3)......)共32个输出)
2)学习时产生的滤波器(如上所述,共32个滤波器)
以下是我的代码和演示图片。样品图片
首先,我刚刚读取了一张图片。
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个滤镜,这些滤镜是由一个模型学习的,同时得到这些输出。那么谁能帮我解决我的疑问?
先谢谢你:)
你想好怎么可视化了吗?首先,我在这方面是个初学者,但我会尽力回答你的问题。我的两分钱是,你是可视化的中间激活而不是过滤器。你可以参考 本教程 针对您的这两个问题,我们将为您提供更多细节。