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. python 2.43 升级到2.7

    [root@GW1 bin]# lsb_release -aLSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3. ...

  2. swift-UserDefaults控制账号和密码

    import UIKit class FiveVC: UIViewController { //MARK:-------- 全局 常量 设置 let IsFirstLaunch = "IsF ...

  3. 关于Unity3D手机网游开发一些小看法

    它的知识技能和职责,我就不仔细说了,说细了有一点像招聘启示.他的主要职责虽然负责技术,但是也给产品决策和方向提供一些决策.他最主要的考核指标,就是经验很重要,最好主导或参与过一款网络游戏的开发.举个例 ...

  4. js出错总结

    1 没有</script>  src="js" "./js" "../js"2 dom对象与jquery对象(jquery对象其 ...

  5. java获取到机器IP地址及MAC码

    import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.net.InetAddress; import java.ne ...

  6. Charles常用的十大功能

    转载:http://www.jianshu.com/p/2745dbb97cc2 简介 Charles是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常 ...

  7. TestNG测试报告美化buid.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <project name="myproject&qu ...

  8. 如何设置jvm内存

    本文向大家简单介绍一下进行JVM内存设置几种方法,安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JR ...

  9. WPF 动画效果

    线性插值动画.关键帧动画.路径动画 1. (Visibility)闪烁三下,停下两秒,循环: XAML: <Grid> <Grid.ColumnDefinitions> < ...

  10. 【CSS 杂记】

    1.CSS达到截取效果 地方卡机了会计师的立法及  =>  地方卡机了... max-width: 400px; overflow: hidden; white-space: nowrap; t ...