您好,我观察到当参数validate设置为True的时候,可以边训练边验证,但是当我们进行验证的时候会发现在BEVEncoderde这段代码中
shift_ref_2d = ref_2d.clone()
if self.use_temporal:
shift_ref_2d += shift[:, None, None, :] # 确定和前一帧的偏移是多少
if prev_bev is not None:
prev_bev = prev_bev.permute(1, 0, 2)
print('prev_bev',prev_bev.shape)
print('bev_query',bev_query.shape)
prev_bev = torch.stack(
[prev_bev, bev_query], 1).reshape(bs * 2, len_bev, -1)
输出的维度如下所示,这应该是验证的时候和训练的时候batch_size不一致,导致的
bev_query torch.Size([1, 625, 96])
prev_bev torch.Size([8, 625, 96])
在拼接的时候出现错误,但是验证集的bs只能为1,保证时序连续,请问遇到这种问题应该如何解决呢
您好,我观察到当参数validate设置为True的时候,可以边训练边验证,但是当我们进行验证的时候会发现在BEVEncoderde这段代码中
输出的维度如下所示,这应该是验证的时候和训练的时候batch_size不一致,导致的
bev_query torch.Size([1, 625, 96])
prev_bev torch.Size([8, 625, 96])
在拼接的时候出现错误,但是验证集的bs只能为1,保证时序连续,请问遇到这种问题应该如何解决呢