caffe提特征py脚本

根据doc文件改的方便提caffe特征的py脚本
#coding=utf-8
import sys
#############################caffe提特征的脚本###########################
###################我们可以从这里改变提特征的参数########################

##step1 配置caffe的路径
sys.path.insert(0,'/home/cp/caffe/python/')

##step2 配置训练好的 model 以及deploy.prototxt
#MODEL_FILE = '/home/zyf/preTrainedModel/VGG_ILSVRC_16_layers/deploy.prototxt'
#PRETRAINED = '/home/zyf/preTrainedModel/VGG_ILSVRC_16_layers/VGG_ILSVRC_16_layers.caffemodel'
MODEL_FILE = '/home/cp/sl-caffe/examples/mnist_sl/deploy/alexnet_batchsize320_deploy.prototxt'
PRETRAINED = '/home/cp/sl-caffe/examples/mnist_sl/alexnet_cp_iter_200000.caffemodel'

##step3 配置图像的目录 ps:目录里只能放图像
IMAGE_ROOT = '/home/cp/kaggle/data/Images/'

##step4 配置 提特征的具体层
LAYER = 'pool5'

##step5 配置 保存的名字
SAVENAME = 'clothes1_query_alex_feature'
LISTNAME = 'clothes1_query_alex_namelist'
#######################以上是参数配置部分###############################
import numpy
import caffe
import os 
caffe.set_mode_gpu()
gpu_id = 0
caffe.set_device(gpu_id)
net=caffe.Net(MODEL_FILE,PRETRAINED,caffe.TEST)

blob = caffe.proto.caffe_pb2.BlobProto()

transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})
transformer.set_transpose('data', (2,0,1))
# question : 注释这一行提出的特征在[0,1]之间 暂时认为是特征的归一下
transformer.set_raw_scale('data', 255)  # the reference model operates on images in [0,255] range instead of [0,1]
transformer.set_channel_swap('data', (2,1,0))  # the reference model has channels in BGR order instead of RGB

net.blobs['data'].reshape(1,3,227,227)

files=os.listdir(IMAGE_ROOT)

imageList=[]
feature=[]
import time
import numpy
for i in files:
	net.blobs['data'].data[...] = transformer.preprocess('data', caffe.io.resize_image(caffe.io.load_image(IMAGE_ROOT+i),(227,227)))
	t0 = time.time()
	out = net.forward()
	feature.append(net.blobs[LAYER].data[0].copy())
        print net.blobs[LAYER].data[0].copy()
	imageList.append(i)
	pretime = time.time() - t0
	print 'Img '+str(i)+' feature extraction cost '+str(pretime)+' s'
	
#保存到numpyarray
feature=numpy.array(feature)
imageList=numpy.array(imageList)
numpy.save(SAVENAME+'.npy',feature)
numpy.save(LISTNAME+'.npy',imageList)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值