此时就需要自定义collate_fn
函数实现数据的自定义加载功能,下面首先看一下装入Dataset中的数据是什么:
可以看到:这里的batch是一个批量的数据,这和超参数batch_size
大小相关联。它是一个list类型的数据,其中每一个元素是一个包含了(数据1,数据2,...,数据n,label)
形式的元组,例如:
这里数据个数n
取决于你的Dataset中究竟是什么样的数据。以这个项目为例,这是一个多模态虚假新闻检测的例子中生成的数据,其中下标为0的数据是我们根据一张图片检测后形成的锚框以及整张图片的feature两者concat形成的特征值。具体可见下面代码段:
class UEMDataset(Dataset):
def \_\_init\_\_(self,df,root_dir,image_id,text_id,image_vec_dir,text_vec_dir):
# super(UNDataset, self).\_\_init\_\_()
self.df = df
self.root_dir = root_dir
self.image_id = image_id
self.text_id = text_id
self.image_vec_dir = image_vec