1. 数据集

MNIST手写体数据.bmp图片:训练集60K张28*28的,测试集10K张28*28的;

训练集:

测试集:

下载地址:

2. 读取图片名称与标签,保存到trainlist.txt与testlist.txt

matlab代码:

(1)读取train

改为自己的数据url

clc

%% 读取文件夹里的图片名称,且将图片名保存到txt
file_path = 'D:\deeptools\caffe-windows-master\data\mnist\train-images\';
img_path_list = dir(strcat(file_path,'*.bmp'));
img_num = length(img_path_list);
fp = fopen('train.txt','wt');
if img_num > %有满足条件的图像
for j = :img_num %逐一读取图像
image_name = img_path_list(j).name;% 图像名 fprintf(fp,'%s %d\n',image_name,str2num(image_name()));
% csvwrite('train.txt',image_name) % image = imread(strcat(file_path,image_name));
% fprintf('%d %d %s\n',i,j,strcat(file_path,image_name));% 显示正在处理的图像名
%图像处理过程 省略
end
end

结果(部分)是:

(2)val代码

改为自己的test数据URL;

clc

%% 读取文件夹里的图片名称,且将图片名保存到txt
file_path = 'D:\deeptools\caffe-windows-master\data\mnist\t10k-images\';
img_path_list = dir(strcat(file_path,'*.bmp'));
img_num = length(img_path_list);
fp = fopen('test.txt','wt');
if img_num > 0 %有满足条件的图像
for j = 1:img_num %逐一读取图像
image_name = img_path_list(j).name;% 图像名 fprintf(fp,'%s %d\n',image_name,str2num(image_name(1)));
% csvwrite('train.txt',image_name) % image = imread(strcat(file_path,image_name));
% fprintf('%d %d %s\n',i,j,strcat(file_path,image_name));% 显示正在处理的图像名
%图像处理过程 省略
end
end

  部分结果为:

(3) test代码

改为自己的test数据URL;

clc

%% 读取文件夹里的图片名称,且将图片名保存到txt
file_path = 'D:\deeptools\caffe-windows-master\data\mnist\t10k-images\';
img_path_list = dir(strcat(file_path,'*.bmp'));
img_num = length(img_path_list);
fp = fopen('test.txt','wt');
if img_num > %有满足条件的图像
for j = :img_num %逐一读取图像
image_name = img_path_list(j).name;% 图像名 fprintf(fp,'%s\n',image_name);
% csvwrite('train.txt',image_name) % image = imread(strcat(file_path,image_name));
% fprintf('%d %d %s\n',i,j,strcat(file_path,image_name));% 显示正在处理的图像名
%图像处理过程 省略
end
end

结果为:

3. 现在将数据转变为lmdb格式储存

(1)我们新建一个train_lmdb文件夹(反正是如果我不事先建立这个文件夹就会出错,如下图)

和一个convert.bat文件,里面写入

D:/deeptools/caffe-windows-master/bin/convert_imageset.exe --shuffle D:/deeptools/caffe-windows-master/data/mnist/train-images/ D:/deeptools/caffe-windows-master/examples/mymnist/train.txt D:/deeptools/caffe-windows-master/examples/mymnist/train_lmdb
pause

我们使用了--shuffle:意思是随机打乱图片顺序

结果是在新建的train_lmdb文件夹里新生成了这两个文件:

为了确定你成功了,最好看一下生成的log文件夹里以INF开头的看看里面的图片总数是不是你的图片数量。

(2)同上一样得到val_lmdb

4.求得均值——

图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。

那么这个均值怎么来的呢,实际上就是计算所有训练样本的平均值,计算出来后,保存为一个均值文件,在以后的测试中,就可以直接使用这个均值来相减,而不需要对测试图片重新计算。

新建ComputeImageMean.bat,里面输入

D:/deeptools/caffe-windows-master/bin/compute_image_mean.exe D:/deeptools/caffe-windows-master/examples/mymnist/train_lmdb D:/deeptools/caffe-windows-master/examples/mymnist/mean.binaryproto
pause

结果:

至于转换成leveldb格式和用这个格式求均值都可以从我的另一篇看到。。

5.现在我们仔细编写一下solve.prototxt与train_test.prototxt

因操作失误,现在链接不上远程 待续。。。。。

windows+caffe(五)——实例2MNIST图片的更多相关文章

  1. caffe训练自己的图片进行分类预测--windows平台

    caffe训练自己的图片进行分类预测 标签: caffe预测 2017-03-08 21:17 273人阅读 评论(0) 收藏 举报  分类: caffe之旅(4)  版权声明:本文为博主原创文章,未 ...

  2. [C13] 应用实例:图片文字识别(Application Example: Photo OCR)

    应用实例:图片文字识别(Application Example: Photo OCR) 问题描述和流程图(Problem Description and Pipeline) 图像文字识别应用所作的事是 ...

  3. Windows phone应用开发[21]-图片性能优化

    在windows phone 中常在列表中会常包含比较丰富文字和图片混排数据信息. 针对列表数据中除了谈到listbox等控件自身数据虚拟化问题外.虽然wp硬件设备随着SDK 8.0 发布得到应用可使 ...

  4. 转:Windows Socket五种I/O模型

    原文转自:  Windows Socket五种I/O模型 Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模 ...

  5. 每天一个JavaScript实例-推断图片是否载入完毕

    <!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  6. 重新想象 Windows 8 Store Apps (29) - 图片处理

    原文:重新想象 Windows 8 Store Apps (29) - 图片处理 [源码下载] 重新想象 Windows 8 Store Apps (29) - 图片处理 作者:webabcd介绍重新 ...

  7. 使用CSS3的clip-path(裁剪路径)实现剪贴区域的显示以及实例实现图片渐变

    clip-path介绍 clip-path 直译过来就是裁剪路径,使用SVG或形状定义一个HTML元素的可见区域的方法.想象一下你在Photoshop中勾勒路径的场景.MDN上是这样介绍 clip-p ...

  8. CSS实例:图片导航块

    1.认识CSS的 盒子模型. 2.CSS选择器的灵活使用. 3.实例: a.图片文字用div等元素布局形成HTML文件. b.新建相应CSS文件,并link到html文件中. c.CSS文件中定义样式 ...

  9. Windows进程单实例运行

    场景         Windows进程单实例运行,如果有进程没有退出,继续等待,直到进程完全退出,才会进入下一个实例 HANDLE pHandle = NULL; do  {  pHandle = ...

随机推荐

  1. MySQL 5.6 记录 SQL 语句与慢查询

    环境: MySQL 如果需要记录 MySQL 的查询语句,需要在配置文件(Linux 下为 my.cnf,Windows 下为 my.ini)中添加配置: general_log = ON gener ...

  2. js、css引用文件的下载方式

    js.css引用文件的下载方式 一.测试(chrome):1.直接使用<script...>.<link...>标签来混合引入脚本文件和css文件, <script as ...

  3. 使用bootstrap 弹出效果演示

    前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编辑.在增加用户体验方面,弹出框和提示框起着重要的作用,如果你的 ...

  4. Kafka 解析

    Kafak采用硬盘顺序写入和内存映射文件技术提示性能.即便是顺序写入硬盘,硬盘的访问速度还是不可能追上内存.所以Kafka的数据并不是实时的写入硬盘,它充分利用了现代操作系统分页存储来利用内存提高I/ ...

  5. .NET中MemCached使用介绍

    阅读目录 1.MemCached是什么? 2.Window中MemCached安装 3.MemCached命令 4.简单示例 MemCached是什么 MemCached是一个自由开源,高性能,分布式 ...

  6. MVC 关于easyui-datebox 赋值问题

    view <script type="text/javascript"> $(function () { var date = '@ViewData["end ...

  7. JSON例子异常分析

    今天自己写了一个JSON的例子,可以一调用就出了问题,报下面这个异常: Java.lang.ClassNotFoundException: org.apache.commons.lang.except ...

  8. 第三篇:白话tornado源码之请求来了

    上一篇<白话tornado源码之待请求阶段>中介绍了tornado框架在客户端请求之前所做的准备(下图1.2部分),本质上就是创建了一个socket服务端,并进行了IP和端口的绑定,但是未 ...

  9. iOS Developer Library地址

    1. iOS Developer Library路径:https://developer.apple.com/library/ios/navigation/ 2. 百度搜索:iOS Developer ...

  10. 正则表达式/g与/i及/gi的意义

    g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写