深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-4应用生成模型进行预测
2017-03-22 15:48
1226 查看
该步可以分两种情况进行使用:1.使用caffe所提供的
classify.py进行预测;2.使用python代码进行预测
1.使用caffe所提供的
classify.py进行预测
在caffe目录下面的python里有一个classify.py,进行分类。但是,好像不太好用,网上有人对代码进行了修改。修改的地方,见以前博客。
在终端执行:
python python/classify.py --print_results --model_def examples/testCreateLmDB/my_quick.prototxt --pretrained_model examples/testCreateLmDB/my_quick_iter_4000.caffemodel.h5 --labels_file examples/testCreateLmDB/mylabel.txt --center_only examples/testCreateLmDB/120.jpg foo
2.使用python代码进行预测
执行效果如图所示:
classify.py进行预测;2.使用python代码进行预测
1.使用caffe所提供的
classify.py进行预测
在caffe目录下面的python里有一个classify.py,进行分类。但是,好像不太好用,网上有人对代码进行了修改。修改的地方,见以前博客。
在终端执行:
python python/classify.py --print_results --model_def examples/testCreateLmDB/my_quick.prototxt --pretrained_model examples/testCreateLmDB/my_quick_iter_4000.caffemodel.h5 --labels_file examples/testCreateLmDB/mylabel.txt --center_only examples/testCreateLmDB/120.jpg foo
2.使用python代码进行预测
import numpy as np import matplotlib.pyplot as plt #[1]Load caffe 第一步:导入caffe # The caffe module needs to be on the Python path; # we'll add it here explicitly. import sys caffe_root = '/home/lw/caffe/' # this file should be run from {caffe_root}/examples (otherwise change this line) sys.path.insert(0, caffe_root + 'python') import caffe # If you get "No module named _caffe", either you have not built pycaffe or you have the wrong path. #[1]Import Net 第二步使用NET,注意相关文件所在路径 caffe.set_mode_gpu() model_def = caffe_root + 'examples/cifar10/cifar10_quick.prototxt' model_pretrained = caffe_root + 'examples/cifar10/cifar10_quick_iter_4000.caffemodel.h5' MEAN_PROTO_PATH = caffe_root+'examples/cifar10/mean.binaryproto' #这里是二进制文件,而不是Python的npy文件 # load the mean ImageNet image (as distributed with Caffe) for subtraction blob = caffe.proto.caffe_pb2.BlobProto() data = open(MEAN_PROTO_PATH, 'rb' ).read() blob.ParseFromString(data) array = np.array(caffe.io.blobproto_to_array(blob))# 将blob中的均值转换成numpy格式,array的shape (mean_number,channel, hight, width) mu = array[0] mean = mu.mean(1).mean(1) # average over pixels to obtain the mean (BGR) pixel values #第三步,使用分类器 net = caffe.Classifier(model_def, model_pretrained,mean=mean, channel_swap=(2,1,0),#RGB通道与BGR raw_scale=255,#把图片归一化到0~1之间 image_dims=(32, 32))#设置输入图片的大小 #Classifier label_list=['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','truck'] input_image = caffe.io.load_image(caffe_root + 'examples/images/cat_gray.jpg')#读取图片 #第四步:显示原图片,以及分类预测结果 prediction = net.predict([input_image])#图片分类 str_gender=label_list[prediction[0].argmax()] print str_gender print '原数据' print prediction[0] print label_list print print '排序后的结果' indices = (-prediction[0]).argsort() #排序输出数组的下标,前面加负号是降序 meta = [ (label_list[i], '%.5f' % prediction[0][i]) for i in indices ] print meta plt.imshow(input_image) plt.title(str_gender) plt.show() print '结束'
执行效果如图所示:
相关文章推荐
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-2生成图像库的均值文件
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-1.制作自己的数据集
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-3结合caffe中的CIFAR10修改相关配置文件并训练
- 【深度学习】笔记6:使用caffe中的CIFAR10网络模型和自己的图片数据训练自己的模型(步骤详解)
- 【神经网络与深度学习】Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning
- Caffe深度学习入门—— caffenet 微调网络 训练自己的数据并测试训练的模型
- 深度学习文章5:使用caffe对自己的图像数据进行训练并测试
- 深度学习Caffe平台实例——CIFAR-10数据集在caffe平台上模型训练及实例使用模型进行预测
- caffe学习笔记3:使用caffe对自己的图像数据进行训练和测试
- Caffe初试(三)使用caffe的cifar10网络模型训练自己的图片数据
- 深度学习利器:TensorFlow在智能终端中的应用——智能边缘计算,云端生成模型给移动端下载,然后用该模型进行预测
- Caffe学习——使用自己的数据(非图像)训练网络
- 【深度学习】笔记7: CNN训练Cifar-10技巧 ---如何进行实验,如何进行构建自己的网络模型,提高精度
- 【caffe】使用自己的图像数据训练lenet并用opencv进行预测
- DL开源框架Caffe | 用训练好的模型对数据进行预测
- caffe 框架下微调已有模型训练自己的数据实现图像分类
- 深度学习 9. MatConvNet 利用mnist的model来训练自己的data。MatConvNet 训练自己数据(一)。
- 深度学习实战——caffe windows 下训练自己的图像模型
- 【深度学习】笔记6:基于CIFAR10网络,训练自己的分类网络的记录
- 【神经网络与深度学习】如何将别人训练好的model用到自己的数据上