如何在 CNN 期间查看处理后的图像?

How can I see processed image during CNN?

我现在正在研究 python 深度学习代码。我想知道我设计的网络内部发生了什么。下面是我正在处理的示例代码。

我的问题是,是否可以在网络中看到处理后的图像?例如,我想看看我的输入图像在“p1”和“p2”之后是如何变化的。可能吗?如果可以,我怎样才能看到?

import tensorflow as tf
IMG_WIDTH = 256
IMG_HEIGHT = 256
IMG_CHANNELS = 3
#define input
inputs = tf.keras.layers.Input(shape=(IMG_WIDTH, IMG_HEIGHT, IMG_CHANNELS))
# s = tf.keras.layers.Lambda(lambda x: x/255)(inputs)

#define Contraction path
c1_1 = tf.keras.layers.Conv2D(64,(3,3),activation='relu', padding='same')(inputs)
c1_2 = tf.keras.layers.Conv2D(64,(3,3),activation='relu', padding='same')(c1_1)
p1 = tf.keras.layers.MaxPooling2D((2,2), strides = 2)(c1_2)

c2_1 = tf.keras.layers.Conv2D(128,(3,3),activation='relu', padding='same')(p1)
c2_2 = tf.keras.layers.Conv2D(128,(3,3),activation='relu', padding='same')(c2_1)
p2 = tf.keras.layers.MaxPooling2D((2,2), strides = 2)(c2_2)

通常,这有点棘手,让我与您分享我的想法:

  1. 如果您只是想了解一个简单的神经网络内部发生了什么,请查看此 link

  2. 如果你想可视化勾选this repo。你只需要将笔记本的最后部分与你的模型同步,它有一个很酷的动画,你可以看到 LENET MNIST

  3. 了解类似 CNN 的模型如何做出决策的更多技术概念包含在 XAI 等主题中,更具体地说 grad-cam

希望这些对您有所帮助。