我使用'res5c'
图层的ResNet提取图像的特征,导致形状为(2048, 14, 14)
我无法操纵这些尺寸。据我所知,有14 * 14个大小为2048的功能。我想迭代一次访问每个功能。
因此,我如何将其重新整形为(14 * 14,2048)数组而不会出错,然后使用for循环轻松迭代它?
答案 0 :(得分:0)
您可以在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