caffe测试时报错 [....syncedmem.cpp:56] Check failed: error == cudaSuccess (2 vs. 0) out of memory
现象:
在caffe复现DenseNet的过程中,训练完成了,就到了测试阶段。当开始运行之后,过了一段时间发现报了一个错误。F0523 12:55:04.591845 17608 syncedmem.cpp:56] Check failed: error == cudaSuccess (2 vs. 0) out of memory。
爆内存了。如图所示。
分析一:batch_size
一般这个问题都是由于batch_size大小设置太大(训练时train_val中的TRAIN和TEST),导致内存不够用,但是由于DenseNet网络很深,需要的内存也很大。作者的显卡配置是1080Ti的,内存为11G。只有在train的batch_size和test的batch_size都设置为1的时候才能跑通。因此在测试的时候跟这部分已经没又关系了。只能和deploy文件有关系。
分析二:deploy文件
下图是输入层的设置,问题就出现在这儿。
首先分析每个参数的意义:
dim:10 #表示对待识别样本进行数据增广的数量,该值的大小可自行定义。但一般会进行5次crop,将整幅图像分为多个flip。该值为10则表示会将待识别的样本分为10部分输入到网络进行识别。如果相对整幅图像进行识别而不进行图像数据增广,则可将该值设置为1.
dim:3 #该值表示处理的图像的通道数,图像为RGB图像则通道数为3,设置该值为3
dim:224 #图像的长度
dim:224 #图像的宽度
问题就出现在第一个dim:10 网络并不需要进行数据增广,因此不需要设置,只需要设置为1。
当改完之后,再次进行测试,完全可以跑通,完美!
作者:GL3_24
来源:****
著作权归作者所有。转载请联系作者获得授权。