MCG-NJU / RTD-Action

[ICCV 2021] Relaxed Transformer Decoders for Direct Action Proposal Generation
Apache License 2.0
86 stars 8 forks source link

I have a problem #14

Closed menghuaa closed 2 years ago

menghuaa commented 2 years ago

我发现RTD滑动窗口的大小是受到限制的。因为在进行验证时要保证一个batchsize中至少包含一个groundtruth,这就需要对滑动窗口的size进行限制。可是验证是当作测试来做的,不能保证至少有一个groundtruth与其对应,是否需要修改代码,当一个batchsize的滑动窗口没有groundtruth与之对应时,其loss计算方法改变一下。之前我在使用GTAD跑别的数据集时,也遇到过训练正常但是验证loss出现nan的问题,其原因也是没有groundtruth与之对应,造成有分母为0的情况,我把这样的特殊情况,特别设置分母为1。

sparkstj commented 2 years ago

你好,这个问题我们在代码里面是有处理的~ 在计算loss的时候,我们会对indices量判断是否为空。以loss_ce为例,https://github.com/MCG-NJU/RTD-Action/blob/bdfa58294d17474a38f573aebd36d9728155753a/models/rtd.py#L198-L202 如果当前窗口中不存在groundtruth,那么matcher给出的匹配将为空,这种情况将loss直接置为0并返回。