首先需要两个文件:
1. caffemodel 和 deploy.prototxt
2. 网络输入的数据文件以及需要输出的那一层的名字
下面以VGG_face为例: (我需要获取pool5的输出)
#coding=utf-8
import sys
sys.path.insert(1,'/home/Develop/caffe/python')
import caffe
import cv2
import numpy as np
im_path = "../ak.png"
#设置GPU运行,如果在cpu下的话直接注释掉就行
caffe.set_mode_gpu()
deploy='../VGG_FACE_deploy.prototxt' #deploy文件
caffe_model= '../VGG_FACE.caffemodel' #训练好的 caffemodel
net = caffe.Net(deploy,caffe_model,caffe.TEST)
im = cv2.imread(im_path)
im = cv2.resize(im,(224,224))
'''预处理部分,需要与网络训练的时候一致'''
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})
transformer.set_transpose('data', (2, 0, 1)