由于pytorch 数据加载部分,默认batch里的所有数据都必须具有一样的size大小,所以不定长视频直接输入,则会带来error.
解决方法如下:
1.如果是test,且对于时间要求不高的话,直接令batchsize = 1,则可以正常运行测试
2.一般的正解是自定义dataloader里的collate_fn函数
def collate_fn(batch):
data = [item[0] for item in batch]
target = [item[1] for item in batch]
target = torch.LongTensor(target)
return [data, target]
然后Dataloader里使用自定义的函数即可。
test_dataloader = DataLoader(test_dataset, collate_fn= collate_fn, batch_size=args.bs, num_workers=args.workers,pin_memory=True)