caffe使用python创建lmdb

 1 import numpy as np
 2 import sys
 3 from PIL import Image
 4 import lmdb
 5 import random
 6 import os
 7
 8 sys.path.append(‘../caffe/python/‘)
 9
10 import caffe
11
12 if __name__ == ‘__main__‘ :
13     train_list_file = ‘./trainlist.txt‘
14     train_images_root = ‘./train/images/‘
15
16     f = open(train_list_file, ‘r‘)
17     trainlist = f.readlines()
18     f.close()
19
20     random.shuffle(trainlist)
21
22     # creating images lmdb
23     in_db = lmdb.open(‘my-train-data-lmdb‘, map_size=int(1e12))
24     with in_db.begin(write=True) as in_txn :
25         for in_idx, in_ in enumerate(trainlist) :
26             fid = in_.strip()
27             fn = os.path.join(train_images_root, fid)
28             im = np.array(Image.open(fn))
29             im = im[:,:,::-1]
30             im = im.transpose((2, 0, 1))
31             im_dat = caffe.io.array_to_datum(im)
32             in_txn.put(‘{:0>10d}‘.format(in_idx), im_dat.SerializeToString())
33     in_db.close()
时间: 2024-08-13 02:29:37

caffe使用python创建lmdb的相关文章

Caffe3——ImageNet数据集创建lmdb类型的数据

Caffe3——ImageNet数据集创建lmdb类型的数据 ImageNet数据集和cifar,mnist数据集最大的不同,就是数据量特别大:单张图片尺寸大,训练样本个数多:面对如此大的数据集,在转换成lmdb文件时:使用了很多新的类型对象. 1,动态扩容的数组“vector”,动态地添加新元素 2,pair类型数据对,用于存储成对的对象,例如存储文件名和对应标签 3,利用opencv中的图像处理函数,来读取和处理大尺寸图像 一:程序开始 由于要向imageNet数据集中设置resize和是否

Caffe2——cifar10数据集创建lmdb或leveldb类型的数据

Caffe2——cifar10数据集创建lmdb或leveldb类型的数据 cifar10数据集和mnist数据集存储方式不同,cifar10数据集把标签和图像数据以bin文件的方式存放在同一个文件内,这种存放方式使得每个子cifar数据bin文件的结构相同,所以cifar转换数据代码比mnist的代码更加的模块化,分为源数据读取模块(image_read函数),把lmdb(leveldb)数据转换的变量声明,句柄(函数)调用都放到定义的caffe::db子空间中,这样简化了代码,而且使得代码更

Caffe1——Mnist数据集创建lmdb或leveldb类型的数据

Caffe1——Mnist数据集创建lmdb或leveldb类型的数据 Leveldb和lmdb简单介绍 Caffe生成的数据分为2种格式:Lmdb和Leveldb.它们都是键/值对(Key/Value Pair)嵌入式数据库管理系统编程库.虽然lmdb的内存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允许多种训练模型同时读取同一组数据集. 因此lmdb取代了leveldb成为Caffe默认的数据集生成格式(http://blog.csd

Caffe系列2——制作LMDB数据详细过程(手把手教你制作LMDB)

制作LMDB详细教程 摘要: 当我们在使用Caffe做深度学习项目时,经常需要制作Caffe常用的数据类型lmdb.leveldb以及hdf5等(尽管可以使用原始图片,效率低),而不是我们常见的JPG.PNG.TIF.因此,我们需要对我们采集的数据进行格式转换,即通过输入我们自己的图片目录(包含有训练集和验证集的大量图片)转换成一个lmdb库文件的输出:这个过程一般是有Caffe工具中的convert_imageset,该工具在编译过的Caffe中,具体位置是:D:\你的caffe根目录\caf

Python创建list和按照索引访问list

Python创建list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一个list表示:>>> ['Michael', 'Bob', 'Tracy']['Michael', 'Bob', 'Tracy']list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的. 构造list非常简单,按照上面的代码,直接用 [ ] 把list的所有元素都括起来,就是一个list对象.通常,

python创建迅雷批量任务

其实不是真的创建了批量任务,而是用python创建一个文本文件,每行一个要下载的链接,然后打开迅雷,复制文本文件的内容,迅雷监测到剪切板变化,弹出下载全部链接的对话框~~ 实际情况是这样的,因为用python分析网页非常,比如下载某页中的全部pdf链接 1 from __future__ import unicode_literals 2 from bs4 import BeautifulSoup 3 import requests 4 import codecs 5 6 r = request

使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据

应用场景: 我们需要设计一个数据库来保存多个文档中每个文档的关键字.假如我们每个文档字符都超过了1000,取其中出现频率最大的为我们的关键字. 假设每个文档的关键字都超过了300,每一个文件的0-299号存储的是我们的关键字.那我们要建这样一个数据库,手动输入这样的一个表是不现实的,我们只有通过程序来帮我实现这个重复枯燥的操作. 具体的示意图如下所示: 首先图1是我们的原始表格: 图1 这个时候我们需要程序来帮我们完成自动字段的创建和数据的插入. 图2 上图是我们整个表的概况.下面我们就用程序来

Kivy A to Z -- 如何从Python创建一个基于Binder的Service及如何从Java访问Python创建的Service

<Kivy A to Z -- 如何从python代码中直接访问Android的Service> 一文中讲到了如何从python访问java的service,这一篇再来讲下如何创建一个基于Binder的Python Service以及如何从Java代码中访问这个Python创建的Service. 先来看代码,再作下解释: 接<Kivy A to Z -- 如何从python代码中直接访问Android的Service>一文,我们在相关的文件中增加代码: binder_wrap.cp

ubuntu配置caffe的python接口pycaffe

参考网站: http://blog.csdn.net/sanmao5/article/details/51923982 (主要参考) https://github.com/BVLC/caffe/issues/782 (问题解决) ubuntu配置caffe的python接口pycaffe 依赖 前提caffe已经正确编译.见Ubuntu配置caffe 库包 sudo apt-get install python-pip sudo atp-get install python-dev python