训练图像数据集和训练图像加载器的长度不同?

乘风 pytorch 441

原文标题Length of train image dataset and train image loader are different?

image_datasets是包含训练和测试数据的字典。

下面的代码:

transforms= transforms.Compose([transforms.ToTensor(),
                                transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
image_datasets = {'train': datasets.CIFAR10(root=data_dir, train=True, download=True, 
                            transform=transforms),
                  'test': datasets.CIFAR10(root=data_dir, train=False, download=True,
                            transform=transforms)
                  }
image_datasets

输出:

{'test': Dataset CIFAR10
     Number of datapoints: 10000
     Root location: ../Data
     Split: Test
     StandardTransform
 Transform: Compose(
                ToTensor()
                Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))
            ), 'train': Dataset CIFAR10
     Number of datapoints: 50000
     Root location: ../Data
     Split: Train
     StandardTransform
 Transform: Compose(
                ToTensor()
                Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))
            )}

#CREATING DATA LOADER 
data_loaders = {
    'train': DataLoader(image_datasets['train'], 10, shuffle=True),
    'test': DataLoader(image_datasets['test'], 10)}

当我打电话时len(data_loaders['train'])它会返回

5000

在定义我的数据加载器时,我使用的是batch_size=10。我的 data_loader 的长度是否除以我的 batch_size。编码新手,只是想仔细检查。

原文链接:https://stackoverflow.com//questions/71539378/length-of-train-image-dataset-and-train-image-loader-are-different

回复

我来回复
  • Phoenix的头像
    Phoenix 评论

    简单来说,

    • len(data_loaders[‘train’].dataset) 为您提供数据集中的实例数量,例如 CIFAR10 中的 50000。
    • len(data_loaders[‘train’]) 为您提供此数据加载器中的批次数,例如,如果您的 batch_size=10,则 CIFA10 中的批次数为 5000。批次数由 len(dataset)/(batch_size) 计算。

    因此,当我们计算每个 epoch 的准确度时,我们将正确的数量除以len(data_loaders['train'].dataset)notlen(data_loaders['train']),因为我在 Stack Overflow 中为准确度超过 100% 的人修复了这个错误,原因是除法len(data_loaders['train'])

    2年前 0条评论