可视化深度学习 CNN 层
Visualizing DeepLearning CNN Layers
我遇到了使用 Tensorflow 进行深度学习的实验性使用,https://github.com/asrivat1/DeepLearningVideoGames. The author trained CNNs to play Pong game. All seem straightforward to me, except the visualization to illustrate Q-value in the CNN layers. Here's the youtube video, https://www.youtube.com/watch?v=W9jGIzkVCsM。任何人都可以解释图表(看起来像热图)是如何绘制的?
谢谢。
我深入研究了代码并从之前的提交中找到了 this file,但它不再出现在主版本中(很奇怪)。
在里面你会找到可视化的代码,重要的lines是:
self.l1.imshow(np.reshape(np.rollaxis(c1, 2, 1),(20,20*32)),aspect = 6)
self.l2.imshow(np.reshape(np.rollaxis(c2, 2, 1),(5,5*64)),aspect = 12)
self.l3.imshow(np.reshape(np.rollaxis(c3, 2, 1),(3,3*64)),aspect = 12)
这里他们采用大小为 (20, 20, 32) 的激活图并绘制所有激活图。他们重塑为 (20, 20*32)
并排绘制所有特征图(总共 32 个)。为了使其适合屏幕,他们使用 6 的纵横比,水平压缩图像。
总而言之,他们并排绘制所有特征图,并将其压缩以适合屏幕。
我会建议您避免更改纵横比,而是为每次激活使用小块(总共 32 个块)并将这些块排列在 8x4 布局中。
我遇到了使用 Tensorflow 进行深度学习的实验性使用,https://github.com/asrivat1/DeepLearningVideoGames. The author trained CNNs to play Pong game. All seem straightforward to me, except the visualization to illustrate Q-value in the CNN layers. Here's the youtube video, https://www.youtube.com/watch?v=W9jGIzkVCsM。任何人都可以解释图表(看起来像热图)是如何绘制的?
谢谢。
我深入研究了代码并从之前的提交中找到了 this file,但它不再出现在主版本中(很奇怪)。
在里面你会找到可视化的代码,重要的lines是:
self.l1.imshow(np.reshape(np.rollaxis(c1, 2, 1),(20,20*32)),aspect = 6)
self.l2.imshow(np.reshape(np.rollaxis(c2, 2, 1),(5,5*64)),aspect = 12)
self.l3.imshow(np.reshape(np.rollaxis(c3, 2, 1),(3,3*64)),aspect = 12)
这里他们采用大小为 (20, 20, 32) 的激活图并绘制所有激活图。他们重塑为 (20, 20*32)
并排绘制所有特征图(总共 32 个)。为了使其适合屏幕,他们使用 6 的纵横比,水平压缩图像。
总而言之,他们并排绘制所有特征图,并将其压缩以适合屏幕。 我会建议您避免更改纵横比,而是为每次激活使用小块(总共 32 个块)并将这些块排列在 8x4 布局中。