Caffe convert to lmdb


    源码路径:tools/convert_imageset.cpp
    接口:convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME
    目的:根据 ROOTFOLDER/和LISTFILE遍历每一张图片, 按照FLAGS的设置进行转换, 写入LMDB中。

    int main(int argc, char** argv) {
    
      std::ifstream infile(argv[2]);
      std::vector<std::pair<std::string, int> > lines;
      std::string line;
      size_t pos;
      int label;
      while (std::getline(infile, line)) {
        pos = line.find_last_of(' ');
        label = atoi(line.substr(pos + 1).c_str());
        lines.push_back(std::make_pair(line.substr(0, pos), label));
      }
    
      if (FLAGS_shuffle) {
        // randomly shuffle data
        shuffle(lines.begin(), lines.end());
      }
    
      for (int line_id = 0; line_id < lines.size(); ++line_id) {
        //...
        status = ReadImageToDatum(root_folder + lines[line_id].first,
            lines[line_id].second, resize_height, resize_width, is_color,
            enc, &datum);
    
        // sequential
        string key_str = caffe::format_int(line_id, 8) + "_" + lines[line_id].first;
    
        // Put in db
        string out;
        CHECK(datum.SerializeToString(&out));
        txn->Put(key_str, out);
    
        if (++count % 1000 == 0) {
          // Commit db
          txn->Commit();
          txn.reset(db->NewTransaction());
          LOG(INFO) << "Processed " << count << " files.";
        }
    
      }
    
      // write the last batch
      if (count % 1000 != 0) {
        txn->Commit();
        LOG(INFO) << "Processed " << count << " files.";
      }
    
    
    }
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值