在我自己的数据集上屏蔽RCNN资源耗尽(OOM)

时间:2018-10-01 12:13:51

标签: tensorflow memory resources gpu mask

Mask RCNN资源耗尽需要帮助-

硬件-i7-8700、32G RAM,单个ASUS ROG STRIX 1080ti(11GB)

虚拟环境设置-tensorflow-gpu == 1.5.0,python == 3.6.6,Cuda == 9.0.176,cudnn == 7.2.1

图像分辨率-最大宽度= 900像素,最大高度= 675像素,最小宽度= 194像素,最小高度= 150像素,用于训练的11张图像

S / W-IMAGES_PER_GPU = 1(在xxConfig(Config)类中,xxx.py中),BACKBONE =“ resnet50”,POST_NMS_ROIS_TRAINING = 1000,POST_NMS_ROIS_INFERENCE = 500,IMAGE_RESIZE_MODE =“ square”,IMAGE_MIN_DIM = 400, ,TRAIN_ROIS_PER_IMAGE = 100

让我感到奇怪的是,nvidia-smi显示<300MB用于python,终端显示了以下内容,

ResourceExhaustedError(请参阅上面的回溯):在分配带有shape [3,3,256,256]的张量并在/ job:localhost / replica:0 / task:0 / device:GPU:0上通过分配器GPU_0_bfc键​​入float      [[节点:fpn_p5 / random_uniform / RandomUniform = RandomUniformT = DT_INT32,dtype = DT_FLOAT,seed = 87654321,seed2 = 5038409,_device =“ / job:localhost /副本:0 / task:0 / device:GPU:0”]]

nvidia-smi

error-log when running the code

2 个答案:

答案 0 :(得分:0)

默认情况下,Tensorflow会分配所有GPU内存。因此,如果您仅在nvidia-smi中分配了700 MB,则很可能已在Tensorflow中设置了一些选项来限制GPU内存,例如:

config.gpu_options.allow_growth = True

config.gpu_options.per_process_gpu_memory_fraction = 0.4

删除此选项,然后重试。另请参阅:https://www.tensorflow.org/guide/using_gpu

答案 1 :(得分:0)

用7.0.5替换cudnn 7.2.1之后,现在我可以使用1080ti gpu训练Mask-RCNN,而不会出现资源耗尽(OOM)问题。