一、前提
1、已经配置好Caffe的Python接口,能在Python中导入caffe,即“import caffe ”没有报错。
2、已经得到训练好的模型,需要的文件有:deploy.prototxt,###.caffemodel,mean.binaryproto,labels.txt
二、准备工作
1、需要将 .binaryproto文件转为 .npy文件,代码如下:
三、开始分类
四、代码及模型说明
1、训练图像及测试图像都是灰度图,图像通道为单通道,训练图像为32×32,测试图像随意。
img=caffe.io.load_image(imgpath,color=False)
此句读入图像并转化为单通道灰度图,值为float型,范围是0~1.0,因为读入时图像时单通道,所以上面的transformer没有设置通道转换
2、特别测试了mean文件,做如下说明:
若 mean=np.load(root+'Model/mean.npy'),得到的mean是一个32×32的矩阵
若 mean=np.load(root+'Model/20170919-210158-9230_epoch_75.0/mean.npy').mean(1),得到的mean是1×32的矩阵
若 mean=np.load(root+'Model/20170919-210158-9230_epoch_75.0/mean.npy').mean(1).mean(1),得到的是一个值
最初我使用的是第三种方式,导致了很多图像的分类错误,最终使用第一种方式解决了分类错误这个问题。