在这里的话,我是为了将数据集读取一个batch出来的时候以一个张量的列表的形式取出数据,每个batch中的数据都是一个不等长的张量,其shape为:
(time sequence,channel,width,height)
由于在之后的网络中利用torch.nn.utils.rnn.pad_sequence进行了补全处理,所以取数据的时候不需要处理也可以,具体的实现方法就是写一个collate_fn进行取数据,然后在dataloader中将这个参数传入:
def collate_fn(batch_x):
imgs,tgts=[],[]
for (img,tgt) in batch_x:
imgs.append(img)
tgts.append(tgt)
return (imgs,tgts)
train_data=DataLoader(train_datasets,batch_size,shuffle=True,collate_fn=collate_fn)
进行如上操作之后取出来的数据就是上述的数据结构。



