Python崩溃运行Flickr Style数据集的assemble_data.py

时间:2016-02-20 02:28:47

标签: caffe

我尝试使用examples文件夹中提供的assemble_data.py下载Flickr样式数据集。但是,每当我运行此python崩溃时出现错误' python意外退出'。

它似乎与多处理和urllib有关。当我用单线程循环替换pool.map时它可以工作但速度很慢。此外,如果我运行多处理但删除urlretrieve,它似乎也可以工作。

1 个答案:

答案 0 :(得分:1)

在这里回答我自己的问题......我通过使用urllib3来解决这个问题。

http = urllib3.PoolManager(10)
def download_image(args_tuple):
    "For use with multiprocessing map. Returns filename on fail."
    url, filename = args_tuple
    try:
        if not os.path.exists(filename):
            print url + ' -> ' + filename
            # Dont redirect.
            response = http.request('GET', url, redirect=False)
            with open(filename, 'wb') as f:
                f.write(response.data)
        with open(filename) as f:
            assert hashlib.sha1(f.read()).hexdigest() != MISSING_IMAGE_SHA1
        test_read_image = io.imread(filename)
        return True
    except KeyboardInterrupt:
        raise Exception()  # multiprocessing doesn't catch keyboard exceptions
    except:
        os.remove(filename)
        return False

要点here