如何重塑ResNet的res5c层(3D到2D)?

时间:2017-01-24 10:04:23

标签: python numpy neural-network caffe resnet

我使用'res5c'图层的ResNet提取图像的特征,导致形状为(2048, 14, 14)

的numpy数组

我无法操纵这些尺寸。据我所知,有14 * 14个大小为2048的功能。我想迭代一次访问每个功能。

因此,我如何将其重新整形为(14 * 14,2048)数组而不会出错,然后使用for循环轻松迭代它?

1 个答案:

答案 0 :(得分:0)

您可以在net.forward()之后阅读这些功能:

feat = net.blobs['res5c'].data.cop() # copy to be on the safe side.

如您所述,featnp.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