Caffe 学习笔记1

本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权

欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing

这篇博客是caffe官网的一片例程吧,只是熟悉一下操作而已

http://caffe.berkeleyvision.org/gathered/examples/cifar10.html

1、准备数据

cd /home/wangshuo/caffe (这个路径为caffe安装路径)

./data/cifar10/get_cifar10.sh

./examples/cifar10/create_cifar10.sh

运行之后将会有图像均值二进制文件./mean.binaryproto和数据库文件./cifar10_test_lmdb和cifar10_train_lmdb文件夹

2、模型简介

Cifar10是一个由卷积层,池化层,非线性变换层,线性函数RELU,以及在顶端的局部对比归一化的线性分类器组成,该模型在/caffe/examples/cifar10文件夹下面,该文件为名称为cifar10_quick_train_test.prototxt

3、训练和测试该模型

当你写好的网络参数的,设置文件就可以运行train_quick.sh文件

cd $CAFFE_ROOT

./examples/cifar10/train_quick.sh

train_quick.sh 是一个简单的脚本文件,打开它可以看到训练工具叫caffe执行训练操作,然后根据的参数是slover protobuf所设置的。

执行该脚本文件:输出:

I0317 21:52:48.945710 2008298256 net.cpp:74] Creating Layer conv1

I0317 21:52:48.945716 2008298256 net.cpp:84] conv1 <- data

I0317 21:52:48.945725 2008298256 net.cpp:110] conv1 -> conv1

I0317 21:52:49.298691 2008298256 net.cpp:125] Top shape: 100 32 32 32 (3276800)

I0317 21:52:49.298719 2008298256 net.cpp:151] conv1 needs backward computation.

这个信息告诉我们每一层的组成和输出形式,初始化完毕,开始训练。

I0317 21:52:49.309370 2008298256 net.cpp:166] Network initialization done.

I0317 21:52:49.309376 2008298256 net.cpp:167] Memory required for Data 23790808

I0317 21:52:49.309422 2008298256 solver.cpp:36] Solver scaffolding done.

I0317 21:52:49.309447 2008298256 solver.cpp:47] Solving CIFAR10_quick_train

根据设置的solver,每迭代100次就会输出训练的学习率和训练损失函数,每迭代500次会测试一次,输出准确率score 0和测试损失函数score 1

I0317 22:12:19.666914 2008298256 solver.cpp:87] Iteration 5000, Testing net

I0317 22:12:25.580330 2008298256 solver.cpp:114] Test score #0: 0.7533

I0317 22:12:25.580379 2008298256 solver.cpp:114] Test score #1: 0.739837

I0317 22:12:25.587262 2008298256 solver.cpp:130] Snapshotting to cifar10_quick_iter_5000

I0317 22:12:25.590215 2008298256 solver.cpp:137] Snapshotting solver state to cifar10_quick_iter_5000.solverstate

I0317 22:12:25.592813 2008298256 solver.cpp:81] Optimization Done.

最后得到这个模型的测试准确率达到75%,模型参数会被写到一个文件里头

cifar10_quick_iter_5000

4、其他

更改cifar*solver.prototxt文件,可以修改训练的方式,是用GPU还是用cpu

# solver mode: CPU or GPU

solver_mode: CPU

5、遇到的问题

问题:在执行create_cifar10.sh时,提示文件convert_cifar_data.bin不存在。

解决方法:上面命令./create_cifar10.sh必须在根目录下运行

参考:http://caffe.berkeleyvision.org/gathered/examples/cifar10.html

Caffe 学习笔记1的更多相关文章

  1. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  2. Caffe学习笔记(三):Caffe数据是如何输入和输出的?

    Caffe学习笔记(三):Caffe数据是如何输入和输出的? Caffe中的数据流以Blobs进行传输,在<Caffe学习笔记(一):Caffe架构及其模型解析>中已经对Blobs进行了简 ...

  3. Caffe学习笔记(二):Caffe前传与反传、损失函数、调优

    Caffe学习笔记(二):Caffe前传与反传.损失函数.调优 在caffe框架中,前传/反传(forward and backward)是一个网络中最重要的计算过程:损失函数(loss)是学习的驱动 ...

  4. Caffe学习笔记(一):Caffe架构及其模型解析

    Caffe学习笔记(一):Caffe架构及其模型解析 写在前面:关于caffe平台如何快速搭建以及如何在caffe上进行训练与预测,请参见前面的文章<caffe平台快速搭建:caffe+wind ...

  5. Caffe学习笔记4图像特征进行可视化

    Caffe学习笔记4图像特征进行可视化 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit201 ...

  6. Caffe学习笔记3

    Caffe学习笔记3 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和h ...

  7. Caffe学习笔记2

    Caffe学习笔记2-用一个预训练模型提取特征 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hi ...

  8. CAFFE学习笔记(五)用caffe跑自己的jpg数据

    1 收集自己的数据 1-1 我的训练集与测试集的来源:表情包 由于网上一幅一幅图片下载非常麻烦,所以我干脆下载了两个eif表情包.同一个表情包里的图像都有很强的相似性,因此可以当成一类图像来使用.下载 ...

  9. CAFFE学习笔记(四)将自己的jpg数据转成lmdb格式

    1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验 ...

随机推荐

  1. WebExtensions & tabs.executeScript()

    tabs.executeScript() https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs ...

  2. 【ADO.NET】SqlBulkCopy批量添加DataTable

    使用事务和SqlBulkCopy批量插入数据 SqlBulkCopy是.NET Framework 2.0新增的类,位于命名空间System.Data.SqlClient下,主要提供把其他数据源的数据 ...

  3. byte字节的输入流 建议使用字节数组形式接受内容 因为当输入流是汉字时候 会超出字节的范围 出现无法读取的现象

    byte字节的输入流 建议使用字节数组形式接受内容 因为当输入流是汉字时候 会超出字节的范围 出现无法读取的现象

  4. Python 文件对象和方法

    Python文件对象和方法 1.打开和关闭文件 Python提供了必要的函数和方法进行默认情况下的文件基本操作,我们可以用file对象做大部分文件操作. open()方法 我们必须先用Python内置 ...

  5. BZOJ4565 HAOI2016字符合并(区间dp+状压dp)

    设f[i][j][k]为将i~j的字符最终合并成k的答案.转移时只考虑最后一个字符是由哪段后缀合成的.如果最后合成为一个字符特殊转移一下. 复杂度看起来是O(n32k),实际常数极小达到O(玄学). ...

  6. hadoop的第一个hello world程序(wordcount)

    在hadoop生态中,wordcount是hadoop世界的第一个hello world程序. wordcount程序是用于对文本中出现的词计数,从而得到词频,本例中的词以空格分隔. 关于mapper ...

  7. BZOJ3172 & 洛谷3966 [Tjoi2013]单词 【fail树】

    3172: [Tjoi2013]单词 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 4293  Solved: 2083 [Submit][Stat ...

  8. 从零开始学Linux系统(三)安装CentOS-7及软件包管理操作

    推荐博文: VirtualBox安装CentOS7步骤详解: https://my.oschina.net/AaronDMC/blog/840753 如何安装CentOS7字符界面 :http://b ...

  9. Eclipse的Project Facets属性设置解决项目无故报错

    新检出项目,发现代码无故报错,各种尝试,最终发现是因为  项目右键中的 project Facets 属性中的 java 后面的 version 版本和项目 build path 的 jdk 版本不一 ...

  10. UVA315:Network(求割点)

    Network 题目链接:https://vjudge.net/problem/UVA-315 Description: A Telephone Line Company (TLC) is estab ...