Caffe训练ImageNet使用的是NIPS 2012 paper论文的算法。

1、准备数据。

假设已经下载好数据集和验证集,存储路径为:

/path/to/imagenet/train/n01440764/n01440764_10026.JPEG

/path/to/imagenet/val/ILSVRC2012_val_00000001.JPEG

首选需要创建一个txt文件,列举出所有图像以及对应的lable,caffe包“python/caffe/imagenet/ilsvrc_2012_train.txt”和“ilsvrc_2012_val.txt”两个文件分别是标好的训练集和验证集的文件,共分为1000类。

还需要注意的是,所有的图像都需要归一到同样的尺寸。

2、转化生成训练集。

运行下面的命令:

GLOG_logtostderr=1 examples/convert_imageset.bin   /path/to/imagenet/train/ python/caffe/imagenet/ilsvrc_2012_train.txt    /path/to/imagenet-train-leveldb

生成文件存储在“/path/to/imagenet-train_leveldb”路径下。

3、计算图像均值。

执行命令:

examples/demo_compute_image_mean.bin /path/to/imagenet-train-leveldb /path/to/mean.binaryproto

第一个参数是执行脚本代码,第二个参数是上一步生成的数据集,第三个参数是存储图像均值的目录路径。

4、定义网络。

ImageNet的网络定义在“examples/imagenet.prototxt”文件中,使用时需要修改里面source和meanfile变量的值,指向自己文件的路径。

仔细观察imagenet.prototxt和imagenet_val.prototxt文件可以发现,训练和验证的参数大部分都相同,不同之处在于初始层和最后一层。训练时,使用softmax_loss层来计算损失函数和初始化后向传播,验证时,使用accuracy层来预测精确度。

在文件“examples/imagenet_solver.prototxt”中定义solver协议,同样需要修改train_net和test_net的路径。

5、训练网络。

执行命令:

GLOG_logtostderr=1 examples/train_net.bin examples/imagenet_solver.prototxt

6、在python中使用已经训练好的模型。

Caffe只提供封装好的imagenet模型,给定一副图像,直接计算出图像的特征和进行预测。首先需要下载模型文件。

Python代码如下:

[python] view plaincopyprint?
  1. from caffe import imagenet
  2. from matplotlib import pyplot
  3. # Set the right path to your model file, pretrained model
  4. # and the image you would like to classify.
  5. MODEL_FILE = 'examples/imagenet_deploy.prototxt'
  6. PRETRAINED = '/home/jiayq/Downloads/caffe_reference_imagenet_model’
  7. IMAGE_FILE = '/home/jiayq/lena.png'
  8. net = imagenet.ImageNetClassifier(MODEL_FILE, PRETRAINED)
  9. #预测
  10. prediction = net.predict(IMAGE_FILE)
  11. #绘制预测图像
  12. print 'prediction shape:', prediction.shape
  13. pyplot.plot(prediction)
  14. prediction shape: (1000,)
  15. [<matplotlib.lines.Line2D at 0x8faf4d0>] #结果如图所示

图上的横轴表示的label,纵轴表示在该类别上的概率,有图我们看到,lena.jpg被分到了”sombrero”这组,结果还算准确。

结束语

更多内容请参考http://daggerfs.com/caffe/

使用CAFFE训练自己的数据集并单张图片测试的方法相关推荐

  1. Ultralytics公司YOLOv8来了(训练自己的数据集并基于NVIDIA TensorRT和华为昇腾端到端模型加速)--跟不上“卷“的节奏

    Official YOLOv8 训练自己的数据集并基于NVIDIA TensorRT和华为昇腾端到端模型加速 说明: 本项目支持YOLOv8的对应的package的版本是:ultralytics-8. ...

  2. 如何调用 caffe 训练好的模型对输入图片进行测试

    如何调用 caffe 训练好的模型对输入图片进行测试 该部分包括两篇文章 win10 下 caffe 的第一个测试程序(附带详细讲解) 主要讲解如何利用 caffe 来训练模型. 如何调用 caffe ...

  3. win10下使用caffe训练自己的数据,车牌二分类

    caffe编译参考:http://blog.csdn.net/cym1990/article/details/72630584 1.数据格式转换 Caffe采用leveldb或者lmdb的数据格式. ...

  4. caffe 训练自己的数据

    转自:http://www.jianshu.com/p/9644f7ec0a03 和 http://www.cnblogs.com/denny402/p/5083300.html Caffe训练自己的 ...

  5. CVPR 2019 | 基于骨架表达的单张图片三维物体重建方法

    现有的单视角三维物体重建方法通过采用不同的几何形状表达方式取得了不同程度的成功,但它们都难以重建出拓扑复杂的物体形状.为此,华南理工大学,香港中文大学(深圳)以及微软亚研院联合提出一种以骨架(meso ...

  6. 360全景单张图片HDR处理方法教程

    HDR是360全景摄影中常用的图片处理技术.如果使用单张图片进行色调映射处理,推荐使用RAW格式文件.由于其有着比jpeg格式文件更大的动态范围,经过色调映射处理的图片虽然称不上真正的HDR色调映射图 ...

  7. win10用caffe训练自己的数据

    1.将数据按照种类放在不同的文件夹下,每个文件夹下新建一个bat文件,内容类似 dir/s/on/b>d:/train.txt 或者dir /b/s/p/w *.jpg > train.t ...

  8. yolov5训练自己的数据集并计算mAP

    目录 参考文献 代码和权重下载 准备工作 data中新建几个文件夹 makeTxt.py voc_label.py 文件修改 数据集方面的yaml文件修改 网络参数方面的yaml文件修改 train. ...

  9. Mxnet训练自己的数据集并测试

    使用Mxnet训练图片分类类器 1.准备数据: (1)建立一个根目录然后,再为每一个类别的图片建立一个子文件夹,把每一类图片放入对应的子文件夹即可. --root: ----class1 ----cl ...

  10. 基于OpenCV训练口罩检测数据集并测试

    以下内容是利用opencv自带的训练器opencv_traincascade.exe与opencv_createsamples.exe,来对口罩数据集进行训练.内容是自己操作过程中的笔记,可能会有些杂 ...

最新文章

  1. poj3259(Bellman_ford算法)
  2. java堆内存与栈内存区别
  3. 掘金专访 - 收藏集 - 掘金
  4. 漫反射 高光反射_如何有效地使用反射
  5. 搭建DNS主、从服务实验
  6. colock 氟橡胶_橡胶球与玻璃球–任务优先级的隐喻
  7. keras + tensorflow —— 函数式 API编程
  8. Apache整合Tomcat(转)
  9. Angular——Angular 教程
  10. PDF控件Aspose.Pdf 18年新版18.1发布 | 附下载
  11. Web渗透测试实战(Metasploit5.0) 一
  12. 计算机网络ip地址分类的范围,ip地址分类及范围_ip地址由什么组成
  13. 《计算机应用基础》在线考核,2019年秋季考试《计算机应用基础》在线考核试题 在Excel 2010中为了取消分类汇总的操作必须...
  14. MSTAR数据库结合深度学习(SAR图像目标检测与识别)
  15. 为什么要减肥呢?减肥的意义
  16. win10 蓝牙忽然消失 华硕主板
  17. 感悟+北京and新疆知识点
  18. java相册制作,文章中含有源码
  19. ROS wiki learn 整理 1
  20. SSL证书私钥安全怎么保护?

热门文章

  1. linux命令完整篇
  2. mysql Load Data InFile 的用法
  3. Irrlicht引擎例子说明及中文链接
  4. android 动画基础,Android 动画基础
  5. CodeBlocks中文乱码
  6. gc日志怎么看_JVM探秘:GC日志收集与分析
  7. hive根据已有表创建新表_读取Hive中所有表的表结构,并在新Hive库中创建表,索引等...
  8. mysql 8.0安装_MySQL5.7升级到8.0过程详解
  9. 查找python矩阵中最大元素_一种快速查找numpy数组中最大N个元素的方法
  10. java画图类_JAVA绘图类_Graphics