我用层的 ResNet 提取图像的特征'res5c'
,结果是形状的 numpy 数组(2048, 14, 14)
我在处理这些维度时遇到了麻烦。我知道有 14*14 个大小为 2048 的特征。我想迭代一次以访问每个特征。
因此,我如何才能将其重塑为 (14*14, 2048) 的数组而不会出错,然后使用 for 循环轻松地对其进行迭代?
我用层的 ResNet 提取图像的特征'res5c'
,结果是形状的 numpy 数组(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
with 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