【发布时间】:2018-02-05 17:41:41
【问题描述】:
我想在使用 VGG 模型时查看各种中间层的输出(只是为了好玩)。
所以在卷积操作之后你会得到这样的结果 (?,28,28,512):
- ?通过的图像数量
- 28*28是卷积运算后的维度
- 512 是提供的过滤器数量。
我想看看各种输出是什么样子的,例如 [0,:,:,25],所以在link 中使用了这种方法将数组转换为图像。现在我的问题是,如果不是 RGB 原因,这究竟是什么图像,当我看到图像时肯定有一些蓝色、绿色。
编辑:- 我一直在使用的代码:-
req_model = Model(inputs=base_model.input,
outputs=base_model.get_layer('block4_conv2 ').output)
vpred = req_model.predict(img) ## np.shape(vpred) == (1,28,28,512)
plt.imshow(vpred[0,:,:,12])
TL;DR 在我的情况下,形状 28*28 的图像究竟意味着什么[我以为我会看到黑白的东西],如果这不是正确的方式,我希望得到一些指导。
【问题讨论】:
-
这是一个正在使用的颜色图。它的名字是 viridis,在 matplotlib 的颜色图文档上有一个自己的页面!还有一个gallery。
-
快速问题,我可以为这个数组更改不同的颜色图吗?全球是否接受应该使用哪种颜色,或者只是人们根据不同的应用程序选择。
-
是的。阅读 matplotlib 的文档(关于如何选择颜色图)。您也没有提供任何代码。谁知道你是如何策划的。大多数 matplotlib 人都会使用 viridis。有很多话要说,有一个关于 viridis 的视频讨论。每个颜色图都针对不同的事物。正如上面的画廊链接所说:这是试图实现感知统一映射的地图。如果您不知道这意味着什么,请寻找谈话。 (当然你也可以使用 cmap.Greys)
-
感谢您的帮助,我添加的代码不多,只有 matplotlib 的 pyplot 中的基本 plt.imshow 函数。如果可以的话,你可以添加你一直在谈论的视频谈话的链接(我也可以谷歌它,但不知道你指的是哪一个)。
-
我的意思是this one。请记住,viridis 是附带的,并且是 matplotlib 2 中的默认值(在视频发布时是/曾经是外部包)。
标签: python arrays image numpy computer-vision