caffe的训练之一,数据的组织。

本教程为了那些第一次使用caffe框架进行深度学习训练的人而生的,我来一个简单关于caffe训练数据的组织来个简单的介绍。我们都知道caffe中使用leveldb
和lmd两种方式进行组织数据。这里介绍一种使用lmd进行训练数据组织的方式。

我来贴一段简单的代码

组织数据。

1.     lmd的打开和写入数据

定义环境lmd的环境

MDB_env *mdb_env;

MDB_dbi mdb_dbi;

MDB_val mdb_key, mdb_data;

MDB_txn *mdb_txn;

打开数据库

CHECK_EQ(mdb_env_create(&mdb_env),MDB_SUCCESS) << "mdb_env_create failed";

CHECK_EQ(mdb_env_set_mapsize(mdb_env, 1099511627776), MDB_SUCCESS)  // 1TB

<< "mdb_env_set_mapsize failed";

CHECK_EQ(mdb_env_open(mdb_env, argv[3], 0, 0664), MDB_SUCCESS)

<< "mdb_env_open failed";

CHECK_EQ(mdb_txn_begin(mdb_env, NULL, 0, &mdb_txn), MDB_SUCCESS)

<< "mdb_txn_begin failed";

CHECK_EQ(mdb_open(mdb_txn, NULL, 0, &mdb_dbi), MDB_SUCCESS)

<< "mdb_open failed";

写入具体的数据

mdb_data.mv_size = value.size();

mdb_data.mv_data = reinterpret_cast<void*>(&value[0]);

mdb_key.mv_size = keystr.size();

mdb_key.mv_data = reinterpret_cast<void*>(&keystr[0]);

CHECK_EQ(mdb_put(mdb_txn, mdb_dbi, &mdb_key, &mdb_data, 0),MDB_SUCCESS)

CHECK_EQ这个东西是我自己定义的一个断言宏,嘿嘿。懒得贴出来了,大家可以自己编写自己的断言宏。

value和key均为两个string。嘿嘿。是不是觉得非常简单,引用头文件是

#include <glog/logging.h>

#include <leveldb/db.h>

#include <leveldb/write_batch.h>

#include <lmdb.h>

#include <sys/stat.h>

#include <algorithm>

#include <fstream>  // NOLINT(readability/streams)

#include <string>

#include <utility>

#include <vector>

#include "caffe.pb.h"

#include "io.hpp"

#include "rng.hpp"

好了,到此为止大家应该知道怎么组织自己的训练数据了。提示一点,caffe的训练数据的东西都需要进行resize成同一维度的数据。

时间: 2024-10-13 05:20:38

caffe的训练之一,数据的组织。的相关文章

Caffe下自己的数据训练和测试

在caffe提供的例程当中,例如mnist与cifar10中,数据集的准备均是通过调用代码自己完成的,而对于ImageNet1000类的数据库,对于高校实验室而言,常常面临电脑内存不足的尴尬境地.而对于应用者而言,用适合于自己条件的的数据集在caffe下训练及测试才是更重要的.所以我们有必要自己做数据库以及在caffe上训练及测试. 1,数据准备 在data中新建文件夹myself,我们截取了ImageNet1000类中的两类-panda与sea_horse,训练panda的图片24张,测试pa

caffe使用自己的数据做分类

这里只举一个例子: Alexnet网络训练自己数据的过程 用AlexNet跑自己的数据 参考1:http://blog.csdn.net/gybheroin/article/details/54095399 参考2:http://www.cnblogs.com/alexcai/p/5469436.html 1,准备数据: 在caffe根目录下data文件夹新建一个文件夹,名字自己起一个就行了,我起的名字是food,在food文件夹下新建两个文件夹,分别存放train和val数据, 在train文

Windows Caffe(三) 图像数据转化为Caffe可以运行的数据

在运行Caffe自带的两个例子的时候,我们的数据都来自互联网,是直接下载的二进制文件. 但我们大多数情况下使用的是原始的图片数据(如.jpg .png等),接下来研究如何将原始的图片数据转化为caffe可以运行的数据. 1.准备图片数据 caffe安装完成之后,在example/images文件下会有四张.jpg图片,cat.jpg, cat gray,jpg, cat_gray.jpg, fish-back.jpg 2.生成图片清单 我们写需要一个sh脚本,调用Linux命令生成图片的清单.W

百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。

百度为何开源深度机器学习平台? 有一系列领先优势的百度却选择开源其深度机器学习平台,为何交底自己的核心技术?深思之下,却是在面对业界无奈时的远见之举. 5月20日,百度在github上开源了其深度机器学习平台.此番发布的深度机器学习开源平台属于"深盟"的开源组织,其核心开发者来自百度深度学习研究院(IDL),微软亚洲研究院.华盛顿大学.纽约大学.香港科技大学,卡耐基·梅陇大学等知名公司和高校. 通过这一开源平台,世界各地的开发者们可以免费获得更优质和更容易使用的分布式机器学习算法源码,

caffe绘制训练过程的loss和accuracy曲线

转自:http://blog.csdn.net/u013078356/article/details/51154847 在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果.如 果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tools/extra/parse_log.sh  caffe-master/tools/extra/extract_seconds.py和 caffe-master/tools/ext

7、群体类和群体数据的组织-1.函数模板和类模板

基本数据类型是c++编译系统预定义的,而自定义类型的数据是由多个基本类型或自定义类型的元素组成的,我们称之为群体数据. 对于群体数据,仅有系统预定义的操作是不够的,在很多情况下,还需要设计与某些具体问题相关的特殊操作,并按照面向对象的方法将数据与操作封装起来,这就是群体类. 群体可以分为两种:线性群体和非线性群体.线性群体中的元素按位置排列有序.非线性群体不用位置顺序来标识元素. 关于群体数据的组织是属于数据结构的范畴,这里只介绍两类常用的算法:排序和查找方法. 排序:又称为分类或整理,是将一个

跟我一起学extjs5(30--加入模块和菜单定义[3后台系统数据的组织和生成])

跟我一起学extjs5(30--加入模块和菜单定义[3后台系统数据的组织和生成]) 对于大多web程序来说,后台是完成控制和处理的,前台就是一个展示工具,这个系统也是这样.在上一节中建立了四个模块,下面开始设计前后台的交互.将系统信息和模块.菜单信息传到前台,由前台来进行展示. 首先新建一个java bean类用来存放各种需要传到前台的数据,里面包括:系统信息.操作人员信息.服务人员信息.模块信息.菜单.现在只加入了这几个,以后还要加入各种 各样的权限设置.在com.jfok.server.co

caffe:用自己的数据训练网络mnist

画黑底白字的软件:KolourPaint. 假设所有"1"的图片放到名字为1的文件夹下.(0-9类似)..获取每个数字的名称文件后,手动表上标签.然后合成train.txt 1.获取文件夹内全部图像的名称: find ./1 -name '*.png'>1.txt //此时的1.txt文件中的图像名称包括路劲信息,要把前面的路径信息去掉. $ sudo sed -i "s/.\/1\///g" 1.txt          //(\表示转义,所以这里用双引号而

用caffe跑自己的数据,基于WINDOWS的caffe

本文详细介绍,如何用caffe跑自己的图像数据用于分类. 1 首先需要安装过程见 http://www.cnblogs.com/love6tao/p/5706830.html 同时依据上面教程,生成了caffe.exe 2 构建自己的数据集.分为train和val 两个数据集,本次实验为2分类任务,一个是包含汽车的图像,一个是不包含汽车图像,其中train 为训练数据集,该文件夹中图像命名格式为trainpos0000.jpg和trainneg0000.jpg,图像通过该命名方式连续编码,val