• CAFFE(FAQ.2):Ubuntu 配置caffe 框架之数据库读取,错误解决:ImportError: No module named leveldb解决办法


    Z:

    在安装了caffe框架后需要读取大量的数据进行学习训练。比如在MNIST识别训练中,一般直接读图片会比较耗时,我们一般将图片转存为数据库中。目前主流的数据库有以下两种选择:

    •   LevelDB
    •   LmDB

    如果我们需要的数据格式是LevelDB,我们需要执行以下命令

    gedit^C/caffe/examples/mnist/create_mnist.sh

    然后在打开的编辑器里面修改create_mnist.sh脚本的代码,将BACKEND=lmdb改为:BACKEND="leveldb"

    如下脚本中突出显示部分:

    #!/usr/bin/env sh
    # This script converts the mnist data into lmdb/leveldb format,
    # depending on the value assigned to $BACKEND.
    set -e
    
    EXAMPLE=examples/mnist
    DATA=data/mnist
    BUILD=build/examples/mnist
    
    #BACKEND="lmdb"
    BACKEND="leveldb"
    
    echo "Creating ${BACKEND}..."
    
    rm -rf $EXAMPLE/mnist_train_${BACKEND}
    rm -rf $EXAMPLE/mnist_test_${BACKEND}
    
    $BUILD/convert_mnist_data.bin $DATA/train-images-idx3-ubyte 
      $DATA/train-labels-idx1-ubyte $EXAMPLE/mnist_train_${BACKEND} --backend=${BACKEND}
    $BUILD/convert_mnist_data.bin $DATA/t10k-images-idx3-ubyte 
      $DATA/t10k-labels-idx1-ubyte $EXAMPLE/mnist_test_${BACKEND} --backend=${BACKEND}
    
    echo "Done."

    我们可以通过如下代码测试读取LevelDB数据库所用时间,具体代码如下

    # coding: utf-8
    
    # # 读取LevelDb数据库中的数据
    
    import sys
    import caffe
    from caffe.proto import caffe_pb2
    import leveldb
    import numpy as np 
    from skimage import io
    
    def leveldb_process(path):
        db = leveldb.LevelDB(path)
        datum = caffe_pb2.Datum()
        
        item_id = 0
        for key,value in db.RangeIter():
            datum.ParseFromString(value)
            label = datum.label
            data = caffe.io.datum_to_array(datum)
            # do something here
            item_id += 1
        print item_id 
    
    if __name__ == '__main__':
        path = sys.argv[1]
        leveldb_process(path)

    当执行读取levelDB数据库中的数据时出现错误提示:ImportError: No module named leveldb解决办法如下:

    打开终端执行命令:

    python2 -m pip install leveldb

    然后再运行数据库读取代码段即可。

  • 相关阅读:
    智能家居项目(3):编译工具makefile
    9、Cocos2dx 3.0游戏开发找小三之工厂方法模式与对象传值
    Redis于windows在安装
    Gray Code -- LeetCode
    hdu 1575 Tr A(矩阵高速电源输入)
    phpstorm快捷键
    Reverse Linked List II -- LeetCode
    程序猿的故事-注定奉献给节目
    poj2112 Optimal Milking --- 最大流量,二分法
    POJ 3356 AGTC(最长公共子)
  • 原文地址:https://www.cnblogs.com/pertor/p/8743222.html
Copyright © 2020-2023  润新知