简单记录一下自己使用caffe的过程和遇到的一些问题。

下载caffe以及安装不具体叙述了。 可參照 http://caffe.berkeleyvision.org/installation.html。

以下准备数据集和训练的过程參照imagenet的过程:可參考  http://drubiano.github.io/2014/06/18/caffe-custom-data.html

1. 将数据集分为train和validate, 分别写到train.txt和val.txt中。 格式每一行文件名称+ 空格 + label (label 是从0開始, 并连续)

00001.jpg 0

00002.jpg 1

00004.jpg 1

00003.jpg 2

2. 将准备好的两个txt, 放到caffe_root/data/myfile/    (caffe_root是caffe的根文件夹, myfile自己命名)。

3. 进入caffe_root/examples/imagenet/ 文件夹中, 改动create_imagenet.sh

DATA=data/myfile

TRAIN_DATA_ROOT=/img_full_dir1
(img_full_dir1 存放训练图片的文件夹)

VAL_DATA_ROOT=/img_full_dir2 (img_full_dir2 存放測试图片的文件夹)

在caffe_root 下运行 ./examples/imagenet/create_imagenet.sh , 能够在examples/imagenet 文件夹下找到, ilsvrc12_train_lmdb  ilsvrc12_val_lmdb两个文件夹

4.  在caffe_root 下运行 ./examples/imagenet/make_imagenet_mean.sh , 结果保存在data/ilsvrc12/imagenet_mean.binaryproto

5.  改动models/bvlc_reference_caffenet 下的solver.prototxt和 train_val.prototxt。 假设不改动网络的结构, 仅仅需改动图片的大小crop_size <imagewidth。

6. 在caffe_root 下运行 ./examples/imagenet/train_caffenet.sh, 进行训练。训练好的模型放在models/bvlc_reference_caffenet

測试网络及模型

1. 在python下执行。 须要先在根文件夹下执行 make all
   make pycaffe     make distribute

2. 将data/ilsvrc12/imagenet_mean.binaryproto 转为numpy格式, 在caffe_root 创建一个mycode的目录,创建一个convertmean.py。内容例如以下:

#!/usr/bin/python

import numpy as np
import sys
sys.path.append('/caffe_root/python')<span style="white-space:pre"> </span>#caffe_root is your caffe root dir need change
import caffe if len(sys.argv) != 3:
print "Usage: python convert_protomean.py proto.mean out.npy"
sys.exit() blob = caffe.proto.caffe_pb2.BlobProto()
data = open( sys.argv[1] , 'rb' ).read()
blob.ParseFromString(data)
arr = np.array( caffe.io.blobproto_to_array(blob) )
out = arr[0]
np.save( sys.argv[2] , out )

3. 运行 python convertmean.py /caffe_root/data/ilsvrc12/imagenet_mean.binaryproto mean.npy

4. 将一张图片放到mycode的文件夹下,vim testcode.py

#!/usr/bin/python
import numpy as np
caffe_root = '/caffe_root/'<span style="white-space:pre"> </span>#<span style="font-family: Arial, Helvetica, sans-serif;">caffe_root is your caffe root dir need change</span> import sys
sys.path.insert(0,caffe_root+'python')
import caffe MODEL_FILE = caffe_root + '/models/bvlc_reference_caffenet/deploy.prototxt'<span style="white-space:pre"> </span>#your net
PRETRAINED = caffe_root + '/models/bvlc_reference_caffenet/caffenet_train.caffemodel'<span style="white-space:pre"> </span>#your model
IMAGE_FILE = caffe_root + 'mycode/imagename.jpg'<span style="white-space:pre"> </span>#your image import os
if not os.path.isfile(PRETRAINED):
print("Downloading pre-trained CaffeNet model...") caffe.set_mode_cpu()
#net = caffe.Classifier(MODEL_FILE, PRETRAINED,
# mean=np.load(caffe_root + 'mycode/mean.npy').mean(1).mean(1),
# channel_swap=(2,1,0),
# raw_scale=255,
# image_dims=(256, 256)) net = caffe.Classifier(MODEL_FILE, PRETRAINED)
net.set_raw_scale('data',255)
net.set_channel_swap('data',(2,1,0))
net.set_mean('data',np.load(caffe_root + 'mycode/mean.npy')) input_image = caffe.io.load_image(IMAGE_FILE)
prediction = net.predict([input_image])
print 'prediction shape:', prediction[0].shape
print 'predicted class:', prediction[0].argmax()

以上就是整个过程, 仅供參考。 引用了很多网上的代码。

caffe 训练測试自己的数据集的更多相关文章

  1. caffe在windows编译project及执行mnist数据集測试

    caffe在windows上的配置和编译能够參考例如以下的博客: http://blog.csdn.net/joshua_1988/article/details/45036993 http://bl ...

  2. TensorFlow CNN 測试CIFAR-10数据集

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50738311 1 CIFAR-10 数 ...

  3. Caffe-python interface 学习|网络训练、部署、測试

    继续python接口的学习.剩下还有solver.deploy文件的生成和模型的測试. 网络训练 solver文件生成 事实上我认为用python生成solver并不如直接写个配置文件,它不像net配 ...

  4. Tensorflow MNIST 数据集測试代码入门

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50614444 測试代码已上传至GitH ...

  5. 使用caffe训练mnist数据集 - caffe教程实战(一)

    个人认为学习一个陌生的框架,最好从例子开始,所以我们也从一个例子开始. 学习本教程之前,你需要首先对卷积神经网络算法原理有些了解,而且安装好了caffe 卷积神经网络原理参考:http://cs231 ...

  6. mahout測试朴素贝叶斯分类样例

    对于这个測试建议大家先理解原理,这里我画了例如以下的示意图 接下来就依照例如以下的细节来输入指令測试: 首先前提是Hadoop安装并启动,mahout已经安装了. <strong>< ...

  7. caffe︱深度学习参数调优杂记+caffe训练时的问题+dropout/batch Normalization

    一.深度学习中常用的调节参数 本节为笔者上课笔记(CDA深度学习实战课程第一期) 1.学习率 步长的选择:你走的距离长短,越短当然不会错过,但是耗时间.步长的选择比较麻烦.步长越小,越容易得到局部最优 ...

  8. 实践详细篇-Windows下使用Caffe训练自己的Caffemodel数据集并进行图像分类

    三:使用Caffe训练Caffemodel并进行图像分类 上一篇记录的是如何使用别人训练好的MNIST数据做训练测试.上手操作一边后大致了解了配置文件属性.这一篇记录如何使用自己准备的图片素材做图像分 ...

  9. 深度学习之Matlab 转C++在iOS上測试CNN手型识别

    1 前言 在上一篇Blog.我介绍了在iOS上执行CNN的一些方法. 可是,一般来说.我们须要一个性能强劲的机器来跑CNN,我们仅仅只是须要将得到的结果用于移动端. 之前在Matlab使用UFLDL的 ...

随机推荐

  1. 前端通过canvas实现图片压缩

    在一次的项目中,需要用户上传图片,目前市场随便一个手机拍出来的照片都是好几兆,直接上传特别占用带宽,影响用户体验,所以要求对用户上传图片进行压缩后再上传:那么前端怎么实现这个功能呢? 亲测可将4M图片 ...

  2. js-DOM操作基本知识

  3. MyBatis学习总结(18)——MyBatis与Hibernate区别

    也用了这么久的Hibernate和MyBatis了,一直打算做一个总结,就他们之间的优缺点说说我自己的理解: 首先,Hibernate是一个ORM的持久层框架,它使用对象和我们的数据库建立关系,在Hi ...

  4. java--web学习总结<转>

    http://www.cnblogs.com/xdp-gacl/p/3729033.html

  5. 新建Eclipse工作空间,复制原有的配置(转)

    方法一: File->Switch workspace->Other...,按下图选择 只复制简单的配置,如cvs之类的信息是不会复制的. 方法二: 在方法一的基础上做如下操作 将新建的w ...

  6. VC6.0VB6.0 Scratch等软件

    VC6.0VB6.0 Scratch等软件 http://pan.baidu.com/s/1nv4hJrb

  7. java文件对照工具

    今天想比較一下两个java文件.这两个文件是本地的. 就在网上下载了一个对照工具(破解版)认为挺好用的对于不同的地方有高亮显示. 就给大家分享一下.软件名叫:beyond compare 软件下载地址 ...

  8. Swift开发教程--怎样使UITableViewController背景透明

    self.tableView.backgroundView? .backgroundColor = UIColor.clearColor(); self.tableView.backgroundCol ...

  9. 【MFC设置静态文本框背景为透明】

    视图类中加入OnCtlColor()函数: IDC_STATIC1为静态文本框ID HBRUSH CAngleView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT n ...

  10. myeclipse配置内存

    1.javaee项目假设耗费的内存过大,须要配置内存大小: 下图是配置tomcat结果:Optional program arguments: -Xms512M -Xmx512M -XX:PermSi ...