caffe在[1]讲到如何看一个图片的特征和分类结果,但是如何批量抽取特征呢?可以使用c++的版本,这里我们谈下如何用python批量抽取特征。
首先,我们要注意caffe filter_visualization.ipynb的程序中deploy.prototxt中网络每一轮的图片batch是10, 这个数刚好和oversample=true的crop数量是一样的,也就是net一轮forward 刚好是一张图片的10个crop。
第一种,oversample = true的情况, 也就是每张图片会产生10张crop的图片: center, 4 corner, 和mirror
假如我们要抽取两张图片, 每张图片有10个crop
首先是修改deploy.prototxt: input_dim : 20
然后:将imagelist 放入predict参数。
scores = net.predict([caffe.io.load_image(caffe_root + "building.jpg"), caffe.io.load_image(caffe_root + "thumb.jpg")])
最后用
net.blobs['fc7'].data[4]
net.blobs['fc7'].data[14]
import numpy as np
import scipy
caffe_root = '/home/hduser/Project/caffe/'
import sys