windows+caffe(五)——实例2MNIST图片
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图片的更多相关文章
- caffe训练自己的图片进行分类预测--windows平台
caffe训练自己的图片进行分类预测 标签: caffe预测 2017-03-08 21:17 273人阅读 评论(0) 收藏 举报 分类: caffe之旅(4) 版权声明:本文为博主原创文章,未 ...
- [C13] 应用实例:图片文字识别(Application Example: Photo OCR)
应用实例:图片文字识别(Application Example: Photo OCR) 问题描述和流程图(Problem Description and Pipeline) 图像文字识别应用所作的事是 ...
- Windows phone应用开发[21]-图片性能优化
在windows phone 中常在列表中会常包含比较丰富文字和图片混排数据信息. 针对列表数据中除了谈到listbox等控件自身数据虚拟化问题外.虽然wp硬件设备随着SDK 8.0 发布得到应用可使 ...
- 转:Windows Socket五种I/O模型
原文转自: Windows Socket五种I/O模型 Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模 ...
- 每天一个JavaScript实例-推断图片是否载入完毕
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 重新想象 Windows 8 Store Apps (29) - 图片处理
原文:重新想象 Windows 8 Store Apps (29) - 图片处理 [源码下载] 重新想象 Windows 8 Store Apps (29) - 图片处理 作者:webabcd介绍重新 ...
- 使用CSS3的clip-path(裁剪路径)实现剪贴区域的显示以及实例实现图片渐变
clip-path介绍 clip-path 直译过来就是裁剪路径,使用SVG或形状定义一个HTML元素的可见区域的方法.想象一下你在Photoshop中勾勒路径的场景.MDN上是这样介绍 clip-p ...
- CSS实例:图片导航块
1.认识CSS的 盒子模型. 2.CSS选择器的灵活使用. 3.实例: a.图片文字用div等元素布局形成HTML文件. b.新建相应CSS文件,并link到html文件中. c.CSS文件中定义样式 ...
- Windows进程单实例运行
场景 Windows进程单实例运行,如果有进程没有退出,继续等待,直到进程完全退出,才会进入下一个实例 HANDLE pHandle = NULL; do { pHandle = ...
随机推荐
- Neil·Zou 语录一
1 既然选择了远方 Since I’ve chosen to go far 便只顾风雨兼程 I will just walk down the path I chose step by ste ...
- web项目存数据到数据库,中文乱码,解决过程
first: 排查原因: 打断点,查看到底是在执行存数据库操作之前就已经乱码了,还是存数据库操作后乱码的. 前者解决方案: 在web.xml里面加上: <filter> <filte ...
- pdb调试技巧
1.先import pdb 在适当的位置加上pdb.set_trace(),在cmd中运行脚本,就可以看到调试的提示符 2.常用的调试命令 h(elp),会打印当前版本,pdb可用的命令,如果要查询某 ...
- mysql临时禁用触发器
mysql支持设定session变量,并且有带入到触发器中使用的能力,故可以间接的设置触发器失效 思路是: 在执行前设定一个session变量,执行过程中判断该变量的值(没有设定该变量的值时该变量默认 ...
- 【Android测试】【第十九节】Espresso——API详解
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5997557.html 前言 Espresso的提供了不少A ...
- C# 中GUID生成格式的四种格式
var uuid = Guid.NewGuid().ToString(); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12 var uuidN = Guid.NewGu ...
- GIT-查看本地html帮助文档
GIT安装后可以直接在命令行中通过指令调取本地html帮助文档如下所示: 格式: git help remote--git help 指令名称 git help remote 显示结果 获取branc ...
- 常用git命令纪录
git branch xxx 新建分支xxx git branch -a 查看所有分支(包括远程) git remote add origin http://xxx.git 在本地添加一个远程仓库, ...
- iOS开发路线简述
1 iOS开发环境1.1 开发环境标准的配置是MacOSX+Xcode.MacOSX的话首选用苹果电脑,Macmini最便宜只要4000多就好了然后自己配一个显示器,MacBookPro 也可以,不推 ...
- 恢复 混淆后的 stacktrace 文件
./tools/proguard/bin/retrace.sh /Users/admin/Downloads/ProguardSample/app/build/outputs/mapping/rele ...