caffe中非图片数据转为lmdb文件

原创 2018年04月17日 11:34:41
图片的怎么转,比较简单?可以参考的博客较多,主要是使用convert_imageset函数


https://www.cnblogs.com/denny402/p/5082341.html


那么对于非图片的呢?比如pcap文件、txt文件等


有几个参考网址,给出了python的代码,把一维数据转成lmdb文件,


https://www.cnblogs.com/dcsds1/p/5205669.html
http://blog.csdn.net/u014169666/article/details/69569385
http://blog.csdn.net/u010417185/article/details/65443803


其实这个转换并不负责,可以参考caffe的源码自己动手写一个。在caffe的源码中有tools/convert_imageset.cpp,在examples/mnist/convert_mnist_data.cpp,这些都可以作为参考。核心就是解析数据,然后利用Datum这种结构写入lmdb文件中。




这里分析mnist这个例子,首先是官网给出的教程,把mnist数据转换为lmdb格式的命令如下:


在caffe主目录下执行:


-Bash 代码
1
build/examples/mnist/convert_mnist_data.bin data/mnist/train-images-idx3-ubyte data/train-labels-idx1-ubyte examples/mnist/mnist_train_lmdb --backend=lmdb


从这里可以看出,主要是调用了convert_mnist_data.bin这个程序,而这个可执行文件是convert_mnist_data.cpp 生成,所以直接看这个文件即可。


在这个文件中,大部分代码都是解析mnist数据的,真正写db的代码量很少,可以简单列出下面几行代码




-Cpp 代码
01
#include "boost/scoped_ptr.hpp"
02
#include "caffe/proto/caffe.pb.h"
03
#include "caffe/util/db.hpp"
04
#include "caffe/util/format.hpp" 
05
#include <lmdb.h>
06
 
07
  scoped_ptr<db::DB> db(db::GetDB(db_backend));
08
  db->Open(db_path, db::NEW);
09
  scoped_ptr<db::Transaction> txn(db->NewTransaction());
10
  
11
  Datum datum;
12
  datum.set_channels(1);
13
  datum.set_height(rows);
14
  datum.set_width(cols);
15
  for (int item_id = 0; item_id < num_items; ++item_id) {
16
    datum.set_data(data, rows*cols);  //the data
17
    datum.set_label(label);    //the label
18
    string key_str = caffe::format_int(item_id, 8);
19
    datum.SerializeToString(&value);
20
 
21
    txn->Put(key_str, value);
22
    txn->Commit();
23
  }
24
  db.Close();


从这段代码可以看出,如果解析好了数据,也解析好了数据对应的label,那么把数据和label放到datum中即可,然后就可以保存了。




代码中包含了不少头文件,是caffe中的,因此,最好把代码放到caffe某个目录下编译即可,一般放到tools中。




另外,如果不想放到tools中,可以考虑修改Makefile文件
版权声明: https://blog.csdn.net/b876144622/article/details/79972478

caffe:将图像转化为LMDB格式文件

将图片数据转化为LMDB数据 第一步:创建图片文件列表清单,一般为一个txt文件,一行一张图片 第二步:使用Caffe工具命令 convert_imageset [FLAGS] [ROOTFOL...
  • xddwz
  • xddwz
  • 2017-06-20 21:20:48
  • 342

Caffe:图像数据转换成ldb(leveldb/lmdb)文件

转载自:denny的学习专栏(前半部分)和 深度学习文档 在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。而在...
  • u011957271
  • u011957271
  • 2017-03-14 19:09:10
  • 873

caffe中如何将自己的图片转化为LMDB类型

说明:由于caffe支持的数据类型不包括图像类型,所以需要将图像转化为lmdb类型才能被caffe识别。 步骤详解: 1、数据准备:在/home/yourname/caffe/examples下面建立...
  • gwpjiayou
  • gwpjiayou
  • 2016-11-30 15:23:29
  • 1120

Caffe下将图片转换为lmdb格式

在Caffe中,将图片转换为lmdb格式
  • sjtu_edu_cn
  • sjtu_edu_cn
  • 2016-11-22 13:18:22
  • 1915

caffe1——图像转换成lmdb(ldeveldb)、hdf5文件

lmdb hdf5lmdbcaffe中经常使用的数据类型是lmdb或者leveldb。在caffe的tools文件夹下,提供了这样一个文件:conver_imageset.cpp,编译后,生成的可执行...
  • VictoriaW
  • VictoriaW
  • 2016-12-24 22:40:04
  • 3925

【caffe】将图片转化为lmdb脚本之直接运行版(包含生成train.txt和test.txt)

  • 2017年05月24日 10:44
  • 2KB
  • 下载

windows下caffe训练自己的图片前期准备lmdb

已经接近崩溃状态…… 8分类,准确率一直低于0.5并且准确率一直在震荡,从0升到0.5在退回去…… (一)准备图片 ①lmdb/leveldb格式 a) 使用编译出来的convert_imag...
  • sudakuang
  • sudakuang
  • 2016-08-24 15:37:45
  • 1972

CAFFE之将图片转化为lmdb格式脚本【直接运行版】(内含生成train.txt和test.txt)

非常实用的一个将图片转换为lmdb格式数据的脚本,内含生成train.txt和test.txt文件的部分,可以直接对图片进行转换,不需要额外的操作,对使用caffe的人来说非常实用和快捷。...
  • jiajinrang93
  • jiajinrang93
  • 2017-05-24 11:45:30
  • 932

caffe如何将图片数据写成lmdb格式

本人也才开始使用caffe 配好环境跑了mnist和另外一个例子,当时就蒙了   如果是图片的例子应该怎么导入,后来看了两天终于整明白了 给大家讲述一下具体过程很简单。我用minst数据库做个实验。 ...
  • xiaoxiao_huitailang
  • xiaoxiao_huitailang
  • 2016-05-10 10:22:05
  • 2099

caffe中将jpg数据转化为lmdb格式的文件

Linux下caffe中如何将自己的jpg格式的图片转化为lmdb格式的文件本文利用caffe自带的create_imagenet.sh文件进行转化,具体步骤如下。1 数据准备 将图片数据和标注分别...
  • dc1994dc
  • dc1994dc
  • 2017-07-26 21:38:12
  • 315
收藏助手
不良信息举报
您举报文章:caffe中非图片数据转为lmdb文件
举报原因:
原因补充:

(最多只允许输入30个字)