V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Hzzone
V2EX  ›  机器学习

Caffe 中 Python 生成 lmdb 文件过大,而且不收敛?

  •  
  •   Hzzone · 2017-09-21 00:13:22 +08:00 · 1982 次点击
    这是一个创建于 2639 天前的主题,其中的信息可能已经有所发展或是发生改变。

    CASIA-WebFace 4 个 g 的人脸数据,在我生成普通的分类数据集之后,生成的 lmdb 文件有 70 个 g,这是不是很不正常?
    另外是,cv2.resize 之后的图片,只有 lmdb,为什么不会收敛呢,而我如果用自带的 tool 是可以的?
    放几行关键代码,希望各位可以指点一二:

    def generate_ordinary_lmdb(source, target, IMAGE_SIZE=227):
        env = lmdb.Environment(target, map_size=int(1e12))
        with env.begin(write=True) as txn:
            for label, person in enumerate(os.listdir(source)):
                person_dir = os.path.join(source, person)
                one_person_samples = os.listdir(person_dir)
                for im_files in one_person_samples:
                    s = os.path.join(person_dir, im_files)
                    datum = caffe.proto.caffe_pb2.Datum()
                    datum.channels = 3
                    datum.height = IMAGE_SIZE
                    datum.width = IMAGE_SIZE
                    sample = preprocess.process(s, IMAGE_SIZE)
                    datum.data = sample.tobytes()
                    datum.label = label
                    str_id = "%s" % s
                    print str_id
                    txn.put(str_id, datum.SerializeToString())
                print "--------"
    
    def process(source, IMAGE_SIZE=227):
        im = cv2.imread(source)
        im = cv2.resize(im, (IMAGE_SIZE, IMAGE_SIZE))
        # plt.imshow(im)
        # plt.show()
        im = im[:, :, ::-1]  # RGB TO BGR
        im = im.transpose((2, 0, 1))  # X1*X2*3 TO 3*X1*X2
        return im
    
    2 条回复    2017-09-21 08:43:21 +08:00
    mingran
        1
    mingran  
       2017-09-21 08:39:02 +08:00
    正常,人脸,图像矩阵经过了 jpg 压缩

    我的理解 lmdb 是 berkleyDB 的近亲,属于[key-value]型数据库
    得把图像矩阵变成字符存储,不做任何压缩。( 你走进 sample.tobytes() 看看详细 )
    文件大到令人发指可以理解。


    不收敛,跟用什么 DB 没关系。
    mingran
        2
    mingran  
       2017-09-21 08:43:21 +08:00
    https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ndarray.tobytes.html


    我不搞 Caffe 很久了。神烦 Caffe 数据输入的那些 layer。。。楼主要是看到好的总结文章,给我共享一份。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2242 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 15:57 · PVG 23:57 · LAX 07:57 · JFK 10:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.