Tensorflow踩坑记(二):Invalid argument: Nan in summary histogram for: TRAIN/vgg16_default/conv3_1/weight

在用Faster Rcnn跑自己的数据,在训练过程中loss的值是Nan,之后训练过程就报出标题上的错误。
原因是:faster rcnn原本运行的数据是pascal,这些是图片的起始像素坐标是1,所以在文件lib/datasets/pascal_voc.py中的_load_pascal_annotation(self, index)函数中解析xml文件时,bndbox的四个坐标值都会减1,代码如下所示:

x1 = float(bbox.find('xmin').text) - 1
y1 = float(bbox.find('ymin').text) - 1
x2 = float(bbox.find('xmax').text) - 1
y2 = float(bbox.find('ymax').text) - 1

我的图片像素的起始坐标是0,所以得删除后面的减1

删除减一后若直接运行,程序还会报错的。原因是:程序运行时,脚本/lib/model/train_val.py中的get_training_roidb(imdb):函数会先将图片做一个镜像(数据增强,大家都懂的),代码如下:

if cfg.TRAIN.USE_FLIPPED:
     print('Appending horizontally-flipped training examples...')
     imdb.append_flipped_images()
     print('done')

这一镜像又得计算坐标(镜像操作过程的代码我没有看),从而报错。解决办法有两个:
1.推一下镜像过程的代码,修改。
2.屏蔽掉镜像过程的代码。
因为我已经给图片做过镜像了,所以就屏蔽了这块的代码,再进行训练,正常~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值