pytorch中的collate_fn 是什么作用

对于目标检测或者目标分类来说,都会在dataloader加载数据时定义一个自己的collate_fn,那collate_fn的作用到底是什么作用那?(主要参考这里)
当我们在自定义自己的dataset时必须要继承官方pytorch定义的Dataset,所以一般都会重写Dataset中的__getitem__函数(下图为官方的Dataset函数),而实际上collate_fn的参数输入就是__getitem__得到的结果(如第二幅图dataset就是你初始化的自己定义的dataset,dataset[i]就是调用了__getitem__函数返回一个批次的图片),collate_fn一般会写一个批次数据读入后怎么拼接(主要是做这个工作),或者你也可以在这里写怎么数据增强(但是一般都是在dataset写),当然在我看的一些代码中也有在这里处理anchors的编码的,在这里干什么可以很灵活,所以你可以按自己的需求进行重写。
pytorch中的collate_fn 是什么作用_第1张图片
pytorch中的collate_fn 是什么作用_第2张图片

你可能感兴趣的:(pytorch中的collate_fn 是什么作用)