CNN层可视化

问题描述 投票:1回答:1

我想绘制两个东西。

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个滤镜,这些滤镜是由一个模型学习的,同时得到这些输出。那么谁能帮我解决我的疑问?

先谢谢你:)

python filter conv-neural-network layer
1个回答
1
投票

你想好怎么可视化了吗?首先,我在这方面是个初学者,但我会尽力回答你的问题。我的两分钱是,你是可视化的中间激活而不是过滤器。你可以参考 本教程 针对您的这两个问题,我们将为您提供更多细节。

© www.soinside.com 2019 - 2024. All rights reserved.