【问题标题】:CNN Layer VisualizationCNN 层可视化
【发布时间】: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)

Ouput of above code

然后我用 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)

Output of above code

那么这是一种可视化应用于图像的过滤器输出的正确方法吗?

现在回到我的第二个问题:

我正在尝试绘制模型在获取这些输出时学习的所有 32 个过滤器。那么有人可以帮我查询吗?

提前谢谢你:)

【问题讨论】:

    标签: python filter conv-neural-network layer


    【解决方案1】:

    你想好如何可视化了吗?首先,我是这方面的初学者,但我会尝试回答您的问题。我的两分钱价值是您正在可视化中间激活而不是过滤器。您可以参考this tutorial 了解有关您的两个问题的更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 2019-08-15
      • 2020-11-24
      • 2020-05-13
      • 2019-07-24
      相关资源
      最近更新 更多