当添加到torchvision,transforms.Compose()时,torchvision.transforms.Normalize()会减慢学习速度。

时间:2020-10-17 17:28:54

标签: python pytorch torchvision

当我使用

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. 如果您的流程中没有任何数据扩充,只需对数据进行转换并将其保存为归一化张量(腌制的东西)即可。
  2. 您还可以将torch.utils.data.DataLoader与一些参数一起使用:例如num_workers指定要使用多少CPU进程来转换数据。这也是pin_memory,如果您使用CUDA,则可以加快整个过程。
相关问题