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()