data_layer.cpp 中该层的析构函数定义的不够好,改成如下版本即可
template <typename Dtype>
DataLayer<Dtype>::~DataLayer<Dtype>() {
this->JoinPrefetchThread();
// clean up the database resources
#if defined(USE_LEVELDB) || defined(USE_LMDB)
switch (this->layer_param_.data_param().backend()) {
#ifdef USE_LEVELDB
case DataParameter_DB_LEVELDB:
break; // do nothing
#endif
#ifdef USE_LMDB
case DataParameter_DB_LMDB:
mdb_cursor_close(mdb_cursor_);
mdb_close(mdb_env_, mdb_dbi_);
mdb_txn_abort(mdb_txn_);
mdb_env_close(mdb_env_);
break;
#endif
default:
LOG(FATAL) << "Unknown database backend";
}
#endif
}
转载请注明原文地址: https://ju.6miu.com/read-12154.html