在使用caffe的python接口时,

如下,如果标黄的部分不加上的话,两次调用该函数,后面的会将前面的返回值覆盖掉,也就是fea1与fea2相等,但是fea1_ori会保留原来的fea1

解决方法为使用fea1_ori或者加上标黄对的copy即可;

 

def apply_model(image, net, filename):
  net.blobs['data'].data[...] = image
  output = net.forward()
  feat_vector = (net.blobs['norm2'].data[0]).copy()
  feat_vector = np.squeeze(feat_vector) 
  return (feat_vector)


#调用

    fea1 = apply_model(img1, net, image_name)
    fea1_ori = fea1.copy()
    print "fea1 is ", fea1
    fea2 = apply_model(img2, net, image_name)
    print "fea1 is ", fea1
    print "fea2 is ", fea2
    print "fea1_ori is ", fea1_ori