zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    用js实现广告图片后加载
    Sql server存储过程和C#分页类简化你的代码
    SQL Server 1069 错误(由于登录失败而无法启动服务)解决方法
    ASP.NET编程中的十大技巧
    ASP.NET通用分页程序
    asp.net中使用SPLIT这个函数把一个字符串分成数组
    win2003+iis6服务器设置问题集
    一个较优雅的GridView隐藏列取值解决方案
    ACCESS的iif语句转到SQL语句!!!
    SCOPE_IDENTITY 和 @@IDENTITY
  • 原文地址:https://www.cnblogs.com/pertor/p/8743222.html
Copyright © 2011-2022 走看看