lsun icon indicating copy to clipboard operation
lsun copied to clipboard

cannot get data

Open DikshaMeghwal opened this issue 5 years ago • 1 comments
trafficstars

  • When I try to download the data using script python download.py -c test I get a .zip folder that cannot be extracted (I have curl installed)
  • I download the dataset from the http://dl.yf.io/lsun/scenes/ mentioned in the code and I can now extract this file to a folder that contains data.mdb and lock.mdb files. When I try to export it using python data.py export ~/Downloads/test_lmdb --out_dir . I get error

sequence item 0: expected str instance, int found Any help would be appreciated.

DikshaMeghwal avatar Apr 03 '20 02:04 DikshaMeghwal

Look at this solution: https://github.com/fyu/lsun/issues/22 - It solves the issue. Basically you need in function export_images to change two lines: image_out_path = join(image_out_dir, key + '.webp') with image_out_path = join(image_out_dir, key.decode() + '.webp') and open(image_out_path, 'w') as fp: with `open(image_out_path, 'wb') as fp:

I put the export_image function in separate file and also set absolute paths. This worked for me: export_images.py:

from __future__ import print_function
import argparse
import cv2
import lmdb
import numpy
import os
from os.path import exists, join
def export_images(db_path, out_dir, flat=False, limit=-1):
    print('Exporting', db_path, 'to', out_dir)
    env = lmdb.open(db_path, map_size=1099511627776,
                    max_readers=100, readonly=True)
    count = 0
    with env.begin(write=False) as txn:
        cursor = txn.cursor()
        for key, val in cursor:
            if not flat:
                image_out_dir = join(out_dir, '/'.join(key[:6]))
            else:
                image_out_dir = out_dir
            if not exists(image_out_dir):
                os.makedirs(image_out_dir)
            image_out_path = join(image_out_dir, key.decode() + '.webp')
            with open(image_out_path, 'wb') as fp:
                fp.write(val)
            count += 1
            if count == limit:
                break
            if count % 1000 == 0:
                print('Finished', count, 'images')
if __name__ == '__main__':
    export_images(r'C:\Users\Dejana\Documents\lsun-master\bedroom_val_lmdb',r'C:\Users\Dejana\Documents\lsun-master\data',True)


dejanaugrenovic avatar May 03 '20 11:05 dejanaugrenovic