Caffe_Example之训练mnist
0、参考文献
[1]caffe官网《Training LeNet on MNIST with Caffe》;
[2]薛开宇《读书笔记4学习搭建自己的网络MNIST在caffe上进行训练与学习》([1]的翻译版,同时还有作者的一些注解,很赞);
1、*.sh文件如何执行?
①方法一:有sh后缀名的是linux脚本文件,在windows下为了执行这个文件,应该下载Git。然后对于sh文件右键,打开方式,选择git-bash.exe。
②方法二:直接将后缀名改成“bat”然后双击。
2、如何载入MNIST数据并且开始训练?
(1)首先明确我们需要设定两个重要的prototxt文件,它们分别是CAFFE_ROOT/examples/mnist下的lenet_train.prototxt和lenet_solver.prototxt。
(2)在lenet_train.prototxt中:
①在此给出用于训练的MNIST数据mnist-train-leveldb以及mnist-test-leveldb的路径;
②在此定义这个网络都有哪些层,给出每一层的定义。
(3)在lenet_solver.prototxt中:
①在此指明我们要训练的网络是lenet_train.prototxt,给出lenet_train.prototxt的路径;
②在此指定是用CPU还是GPU。
(4)在CAFFE_ROOT/examples/mnist下找到sh文件train_lenet.sh,在里面给出:
①caffe编译后生成的可执行文件exe的名称(带不带“.exe”都可以),后面跟“train”代表选择“训练”;
②刚才写好的lenet_solver.prototxt的路径。
然后双击执行该脚本文件即可。
3、关于路径
如2中所述,在这两个prototxt和一个sh文件中,都要指明一些文件的路径。现总结如下:
(1)lenet_train.prototxt中:训练集mnist-train-leveldb与测试集mnist-test-leveldb的路径;
(2)lenet_solver.prototxt中:3-(1)的prototxt文件lenet_train.prototxt的路径;
(3)train_lenet.sh中:caffe可执行文件exe名称,以及3-(2)的prototxt文件lenet_solver.prototxt的路径。
4、能够让程序跑起来的设置方法(法一)
(1)在CAFFE_ROOT/x64/Debug中,新建一个文件夹example2,使该文件夹与可执行文件Caffe.exe处于同一路径中;
不要管examples和myexamples,这两个文件夹是师兄拷给我的时候就有了的,一个是caffe自带的,一个是师兄做的实验。总而言之与example2是独立关系。
(2)将刚才CAFFE_ROOT/examples/mnist下的mnist-test-leveldb、mnist-train-leveldb、lenet_train_test.prototxt以及lenet_solver.prototxt这四个文件全部拷贝到example2中去。
(3)设定prototxt文件,给出相应的路径。
①lenet_train_test.prototxt
这个文件即之前说的lenet_train.prototxt,为了便于区分在后面加了一个_test。给出相对路径如下:
此处给出绝对路径也是可以的。如:
②lenet_solver.prototxt
设置相对路径:
这里给出绝对路径也是可以的。如:
(4)将CAFFE_ROOT/examples/mnist下的train_lenet.sh文件拷贝到CAFFE_ROOT/x64/Debug中,使之与可执行文件Caffe.exe以及example2处于同一目录下。
打开train_lenet.sh文件,修改内容如下:
修改该文件后缀名为bat,双击train_lenet.bat,则可以成功跑起来。
5、能够让程序跑起来的设置方法(法二)
这一次我们不再新建example2,亦不改动sh文件后缀名为bat,而是直接在CAFFE_ROOT/examples/mnist下修改两个prototxt文件和一个sh文件。这种方法更加简单直接,但是要注意保存prototxt文件备份以免写坏了改不回去。
关于这两个prototxt文件如何设置路径在此不赘述。我直接给出设置截图如下:
lenet_train_test.prototxt:
lenet_solver.prototxt:
接下来设置sh文件train_lenet.sh:
设定完毕后,双击sh文件,则可以出现如下结果:
6、总结
(1)在设置一些文件的路径时,可以给出绝对路径,也可以给出相对路径。
(2)在使用train_lenet.sh训练时,可以直接使用sh文件跑起来,也可以修改后缀名为bat然后跑程序。
(3)本文仅仅针对于如何“训练网络”展开,至于如何开启测试模式test对已经训练好网络进行测试,目前还没有进行这个实验,等之后做好了会更新文章的。
Caffe_Example之训练mnist的更多相关文章
- CAFFE学习笔记(一)Caffe_Example之训练mnist
0.参考文献 [1]caffe官网<Training LeNet on MNIST with Caffe>; [2]薛开宇<读书笔记4学习搭建自己的网络MNIST在caffe上进行训 ...
- 使用caffe训练mnist数据集 - caffe教程实战(一)
个人认为学习一个陌生的框架,最好从例子开始,所以我们也从一个例子开始. 学习本教程之前,你需要首先对卷积神经网络算法原理有些了解,而且安装好了caffe 卷积神经网络原理参考:http://cs231 ...
- 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集
上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...
- LeNet训练MNIST
jupyter notebook: https://github.com/Penn000/NN/blob/master/notebook/LeNet/LeNet.ipynb LeNet训练MNIST ...
- 2、TensorFlow训练MNIST
装载自:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html TensorFlow训练MNIST 这个教程的目标读者是对机器学习和T ...
- TensorFlow训练MNIST报错ResourceExhaustedError
title: TensorFlow训练MNIST报错ResourceExhaustedError date: 2018-04-01 12:35:44 categories: deep learning ...
- Window10 上MindSpore(CPU)用LeNet网络训练MNIST
本文是在windows10上安装了CPU版本的Mindspore,并在mindspore的master分支基础上使用LeNet网络训练MNIST数据集,实践已训练成功,此文为记录过程中的出现问题: ( ...
- 【Mxnet】----1、使用mxnet训练mnist数据集
使用自己准备的mnist数据集,将0-9的bmp图像分别放到0-9文件夹下,然后用mxnet训练. 1.制作rec数据集 (1).制作list
- 【OpenCV】opencv3.0中的SVM训练 mnist 手写字体识别
前言: SVM(支持向量机)一种训练分类器的学习方法 mnist 是一个手写字体图像数据库,训练样本有60000个,测试样本有10000个 LibSVM 一个常用的SVM框架 OpenCV3.0 中的 ...
随机推荐
- 第九课: - 导出到CSV / EXCEL / TXT
第 9 课 将数据从microdost sql数据库导出到cvs,excel和txt文件. In [1]: # Import libraries import pandas as pd import ...
- 9) 十分钟学会android--使用Fragment建立动态UI
为了在 Android 上为用户提供动态的.多窗口的交互体验,需要将 UI 组件和 Activity 操作封装成模块进行使用,这样我们就可以在 Activity 中对这些模块进行切入切出操作.可以用 ...
- jquery mobile动态加载数据后无法渲染
引自:http://blog.sina.com.cn/s/blog_025270e901016lst.html jquery mobile在动态添加html之后无法渲染控件,无法转换控件的办法! jq ...
- 一个openMP编程处理图像的示例
一个openMP编程处理图像的示例: 从硬盘读入两幅图像,对这两幅图像分别提取特征点,特征点匹配,最后将图像与匹配特征点画出来.理解该例子需要一些图像处理的基本知识,我不在此详细介绍.另外,编译该例需 ...
- Spring依赖注入:@Autowired,@Resource和@Inject区别与实现原理
一.spring依赖注入使用方式 @Autowired是spring框架提供的实现依赖注入的注解,主要支持在set方法,field,构造函数中完成bean注入,注入方式为通过类型查找bean,即byT ...
- Oracle下rman备份和还原到数据库任意一个时间点
Rman备份为物理备份,启用rman备份必须开启数据库归档,开启归档后相当于给数据库加了一层双保险.Rman备份主要备份数据库的数据文件,控制文件,归档日志. RMAN 备份 一. 检查数据库是否启用 ...
- php 的多进程
php的多进程处理依赖于pcntl扩展,通过pcntl_fork创建子进程来进行并行处理 例子1: <?php $pid = pcntl_fork(); if($pid == -1) { //错 ...
- linux ubuntu安装好后,开通远程登录
1.设置root密码 ubuntu安装好后,用初始的第一个用户登录,然后修改root密码: sudo passwd root 2.检查sshd服务是否启动 (1)查看sshd状态 -----若没有ss ...
- 使用maven创建web项目时后面多出来Maven Webapp如何删除
类似这样: 解决办法:
- Mysql学习总结(36)——Mysql查询优化
从事前端开发的都知道,页面显示的数据一定要及时的呈现,否则会影响用户体现.那么导致页面加载数据慢或者显示滞后的原因又是什么呢? 拿自己之前做项目经历给大家讲讲吧,之前做后台,当时的项目实时性都非常高, ...