我试图在我的数据库中运行fcn。我能够通过lmdb
内置函数caffe将我的图像集转换为convert_imageset
。但是,一旦我想训练net
,它就会给我以下错误:
Check failed: error == cudaSuccess (2 vs. 0) out of memory
*** Check failure stack trace: ***
.....
Aborted (core dumped)
我经历了许多在线资源来解决内存故障,但大多数都建议减少批量大小。甚至,我将图像的大小减小到256x256。我还不能解决这个问题。
我通过此命令nvidia-smi
检查了GPU的内存,模型为Nvidia GT 730
,内存为1998 MiB
。由于train_val.prototxt
中的批量大小为1,因此我无法在train_val.prototxt
中执行任何操作。所以我的问题是:
convert_imageset
将数据转换为LMDB时,它就会在一个组中占用1000个图像。我是否可以将143
和convert_imageset.cpp
的151
中的此数字更改为更小(例如2;一次拍摄两张图片),重新编译caffe,然后转换图像使用convert_imageset到lmdb?它有意义吗?build
文件夹并再次执行caffe安装
刮? 非常感谢您的帮助。 感谢...
答案 0 :(得分:0)
AFAIK,对cuda内存中每次事务(txn->Commit();
)上提交给lmdb的条目数没有影响。
如果您因任何原因想要重新编译caffe,只需运行make clean
即可。这将清除所有内容,让您从头开始重新编译。
同样,AFAIK,caffe一次访问lmdb batch_size
图像,无论编写数据集时使用的事务大小大小。
对于两个 TRAIN和TEST阶段,您确定batch_size
设置为1吗?