FPN_Tensorflow icon indicating copy to clipboard operation
FPN_Tensorflow copied to clipboard

您好,请问训练中途停止是什么原因呢?

Open lilmangolil opened this issue 6 years ago • 17 comments

所报错误是ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[320992,1962] [[Node: rpn_losses/rpn_minibatch/rpn_find_positive_negative_samples/iou_caculate/Maximum_1 = Maximum[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/gpu:0"](rpn_losses/rpn_minibatch/rpn_find_positive_negative_samples/iou_caculate/split, rpn_losses/rpn_minibatch/rpn_find_positive_negative_samples/iou_caculate/unstack)]] [[Node: gradients/fast_rcnn_roi/Gather_2_grad/Reshape_1/_3699 = _Recvclient_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_19918_gradients/fast_rcnn_roi/Gather_2_grad/Reshape_1", tensor_type=DT_INT64, _device="/job:localhost/replica:0/task:0/cpu:0"]] 非常感谢!

lilmangolil avatar Nov 20 '18 12:11 lilmangolil

显存不够 @lilmangolil

yangxue0827 avatar Nov 20 '18 13:11 yangxue0827

正常就应该有四个文件 @lilmangolil

yangxue0827 avatar Nov 21 '18 02:11 yangxue0827

我提供的应该也是四个文件,可以直接用看效果 @lilmangolil

yangxue0827 avatar Nov 21 '18 02:11 yangxue0827

显存不够 @lilmangolil

您好,我调整了batch size之后训练还是总中断,请问中断过后重新运行train.py是在中断之前的基础上继续训练吗?感谢您的回复Thanks♪(・ω・)ノ

lilmangolil avatar Nov 21 '18 12:11 lilmangolil

batch size 只能是1,训练中断后它会找查询是否有保存的模型,有的话导入接着训练,没有的话从头训练。 @lilmangolil

yangxue0827 avatar Nov 21 '18 12:11 yangxue0827

batch size 只能是1,训练中断后它会找查询是否有保存的模型,有的话导入接着训练,没有的话从头训练。 @lilmangolil

感谢您的回复,我降低了例如RPN_MINIBATCH_SIZE、FAST_RCNN_MINIBATCH_SIZE的参数,另外,减少了数据库的图片数,结果发现更频繁的中断,大概迭代2000次就会报错,请问报错之后我继续运行train.py文件,是接着中断之前的继续训练吗?如果是接着中断之前训练的话,在中断后运行train.py文件之后,在tensorboard上面看到的分类显示的image,仍然是中断之前看到的那几张,请问是什么原因呢?望您解答(#^.^#)

lilmangolil avatar Nov 23 '18 03:11 lilmangolil

可能你的tfrecord有问题 @lilmangolil

yangxue0827 avatar Nov 23 '18 04:11 yangxue0827

可能你的tfrecord有问题 @lilmangolil

您好,本来我的训练数据库里面有一万多张图,总是出现中断的问题,之后我尝试用一半或者五分之一的数据训练,没有出现中断的情况,可能是数据库出现问题了吧。另外想请问下,如果我想加入hard negative挖掘的策略,或者要控制正负样本的比例的话,请问要在在哪里添加呢?

lilmangolil avatar Nov 26 '18 08:11 lilmangolil

@lilmangolil 我也出现类似问题,请问你发现生成tfrecord哪一步出了什么问题么?

ethanyhzhang avatar Nov 26 '18 09:11 ethanyhzhang

@lilmangolil 我也出现类似问题,请问你发现生成tfrecord哪一步出了什么问题么?

你好,我把原有的数据库选出一半来训练,就没有报错了,我也不太清楚是什么原因。

lilmangolil avatar Nov 26 '18 09:11 lilmangolil

@yangxue0827 实际网络要求的显存不高,因为batchsize设为1了(如果撤掉fast rcnn部分,会更小),但是训练过程中为什么代码占用了接近8G的显存呢?之后就会出现类似lilmangolil所描述的问题

ethanyhzhang avatar Nov 26 '18 09:11 ethanyhzhang

有如下几个原因会造成显存过大:

  1. 输入图片过大,这也是为什么会在输入图片时约束最短边的边长
  2. anchor的比例和尺度过多导致anchor过多
  3. fpn在rpn不共享参数
  4. rpn阶段的卷积输出通道数,以及第二阶段的全链接数 @lilmangolil @ethanyhzhang

yangxue0827 avatar Nov 26 '18 10:11 yangxue0827

@yangxue0827 实际网络要求的显存不高,因为batchsize设为1了(如果撤掉fast rcnn部分,会更小),但是训练过程中为什么代码占用了接近8G的显存呢?之后就会出现类似lilmangolil所描述的问题

你好,我又用全部的数据库尝试了一遍,发现用resnet101训练会中断,用resnet50训练不会中断

lilmangolil avatar Nov 28 '18 05:11 lilmangolil

是OOM的错误的话就是显存不够,可能你的数据中存在长宽比特别大的情况 @lilmangolil

yangxue0827 avatar Nov 29 '18 03:11 yangxue0827

Recommend improved code: https://github.com/DetectionTeamUCAS/FPN_Tensorflow. @ethanyhzhang

yangxue0827 avatar Dec 02 '18 07:12 yangxue0827

thanks! 不知道改进点在哪呢,或者比较多?

ethanyhzhang avatar Dec 02 '18 09:12 ethanyhzhang

整体的框架还是差不多的,用法也相似,主要是特征融合以及roi分配处重写了。 @ethanyhzhang

yangxue0827 avatar Dec 02 '18 09:12 yangxue0827