如何重塑ResNet的res5c层(3D转2D)?
How to reshape the res5c layer of ResNet (3D to 2D)?
我使用 'res5c'
层的 ResNet 提取图像的特征,得到形状为 (2048, 14, 14)
的 numpy 数组
我在处理这些维度时遇到了问题。我知道有 14*14 个大小为 2048 的特征。我想遍历以一次访问每个特征。
因此,我如何才能将其重塑为 (14*14, 2048) 的数组而不会出错,然后使用 for 循环轻松地对其进行迭代?
您可以阅读net.forward()
之后的特征:
feat = net.blobs['res5c'].data.cop() # copy to be on the safe side.
如您所述,feat
是 np.array
和 shape = (2048, 14, 14)
。
你可以reshape
它:
feat.reshape((2048,-1)) # fix the first dimension to 2048, -1 set the number of features to match that of `feat`.
现在您可以迭代功能:
for fi in xrange(feat.shape[1]):
f = feat[:,fi] # get the fi-th feature
# do somethinf to the feature f
我使用 'res5c'
层的 ResNet 提取图像的特征,得到形状为 (2048, 14, 14)
我在处理这些维度时遇到了问题。我知道有 14*14 个大小为 2048 的特征。我想遍历以一次访问每个特征。
因此,我如何才能将其重塑为 (14*14, 2048) 的数组而不会出错,然后使用 for 循环轻松地对其进行迭代?
您可以阅读net.forward()
之后的特征:
feat = net.blobs['res5c'].data.cop() # copy to be on the safe side.
如您所述,feat
是 np.array
和 shape = (2048, 14, 14)
。
你可以reshape
它:
feat.reshape((2048,-1)) # fix the first dimension to 2048, -1 set the number of features to match that of `feat`.
现在您可以迭代功能:
for fi in xrange(feat.shape[1]):
f = feat[:,fi] # get the fi-th feature
# do somethinf to the feature f