我从 Ubuntu 的源代码安装了 Caffe2。我不使用 Anaconda,我的 python 是 python2。
which python
给我
/usr/bin/python
我可以在 python 中导入 lmdb。我可以从此页面运行教程
我在测试其中一个示例时遇到的问题是“无法打开 lmdb 文件”。
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-19-c9a97f268658> in <module>()
1 # The parameter initialization network only needs to be run once.
2 # Now all the parameter blobs are initialized in the workspace.
----> 3 workspace.RunNetOnce(train_model.param_init_net)
4
5 # Creating an actual network as a C++ object in memory.
/home/pytorch/build/caffe2/python/workspace.py in RunNetOnce(net)
199 C.Workspace.current._last_failed_op_net_position,
200 GetNetName(net),
--> 201 StringifyProto(net),
202 )
203
/home/pytorch/build/caffe2/python/workspace.py in CallWithExceptionIntercept(func, op_id_fetcher, net_name, *args, **kwargs)
178 def CallWithExceptionIntercept(func, op_id_fetcher, net_name, *args, **kwargs):
179 try:
--> 180 return func(*args, **kwargs)
181 except Exception:
182 op_id = op_id_fetcher()
RuntimeError: [enforce fail at db.h:190] db_. Cannot open db: /home/caffe2_notebooks/tutorial_data/mnist/mnist-train-nchw-lmdb of type lmdbError from operator:
output: "dbreader_/home/caffe2_notebooks/tutorial_data/mnist/mnist-train-nchw-lmdb" name: "" type: "CreateDB" arg { name: "db_type" s: "lmdb" } arg { name: "db" s: "/home/caffe2_notebooks/tutorial_data/mnist/mnist-train-nchw-lmdb" }
我拥有所有文件并具有读取权限。
我用USE_LMDB=ON
.
我看到了同样的问题,但找不到他们是如何解决这些问题的。我的笔记本电脑系统很小Ubuntu 16.4, with Nvidia Cuda GeForce GT 750M
,型号很旧。
然后我发现在一页。他们通过更改 lbdb.cc 中的 LMDB_MAP_SIZE 解决了这个问题。所以我换了4G,但还是有错误。
constexpr size_t LMDB_MAP_SIZE = 4294967296;//4gb 1099511627776; // 1 TB
问题出在这一行
workspace.RunNetOnce(train_model.param_init_net)
如何解决问题?