一.transform运行机制
1.transform在什么模块里?
trochvision-计算机视觉工具包,内涵:
torchvision.transforms(提供常用的图像预处理方法);
Torchvision.datasets(提供常用数据集的dataset实现,MNIST,CIFAR-10,ImageNet等);
torchvision.model(提供常用的模型预训练,AlexNet,VGG,ResNet,GoogLeNet等)
2.transform.compose的运行顺序
3.运行过程
transform在__getitem__里调用,并且在__getitem__实现数据预处理,然后给到fetch的列表中,不断处理,直到得到一个batchsize大小的数据,然后collate_fn打包成一个data,以下是具体的流程图:
---------------------------------------------------------------------------------------------------------------------------------
DataLoader(进行文件的切分,加载等) |
↓ |
DataLoaderIter(初始化,区分多进程还是单进程) |
↓ |
Samper(采样得到需要加载的文件) → Index(得到目前一个batch的文件的索引) |
↓ ↓ |
DatasetFetcher(根据所给文件索引,组成一个新的文件列表) ↲ |
↓ |
Dataset(将DatasetFetcher的文件索引输入到Dataset里进行处理,同时检测到Dataset里需要进行 transforms) |
↓ |
getitem(从Dataset已经形成的一个batch的数据列表中取得一个元素) |
↓ |
transforms(进行图像除理)