在torchvision中添加transforms.Compose()时,torchvision.transforms.Normalize()会减慢学习速度

2024-04-25 07:10:03 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用

train_transforms = torchvision.transforms.Compose([
  torchvision.transforms.ToTensor(), 
  torchvision.transforms.Normalize((0.1307,), (0.3081,))
])

对于加载MNIST数据集,即使使用mean = 0std = 1也会减慢学习速度


Tags: 数据composetrainmean速度stdmnistnormalize
1条回答
网友
1楼 · 发布于 2024-04-25 07:10:03

转换是在CPU上执行的,平均值/std是否都为零并不重要(顺便说一句,不要将std设置为0)。要加快变换速度,有两个选项:

  1. 如果流中没有任何数据扩充,只需转换数据并将其保存为规范化张量(pickle或其他)
  2. 您还可以将torch.utils.data.DataLoader与一些参数一起使用:例如num_workers指定用于转换数据的CPU进程数。如果您使用CUDA,还有pin_memory可以加快整个过程

相关问题 更多 >