这次来总体解决一下最初提到的问题,将一个conv层输出的多个特征图整合成一张大图的方法。
从conv层出来的feature_map是有多个的,假如是3个feature_map,每个feature_map的大小为5x4。
此时tensor的shape为[5,4,3],这说明了,它将多个feature_map在某一个位置的不同通道值记录在了一起。
如果我们想要将这些特征图合成一张[5,4x3]的大图,单纯使用reshape进行操作,必然会导致原始特征图的切割,可能会丢失某些潜在信息。
所以我们需要找寻别的办法,将这多个特征图独立起来,然后作为一个整体进行拼接。示意图如下(比例问题是因为原问题的tensor是3x6x16的,图没改,直接改的数)
这样需要进行的操作就是将[5,4,3]的tensor按照第3维抽取出来,成为3个[5,4]的tensor
然后,将这3个tensor按照第1维或者第2维来进行拼接。
如何将一个[5,4,3]的tensor A转换成[3,5,4]的tensor呢?
首先,令B =