Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PyTorch教程中,`images,labels=dataiter.next()`如何工作?_Python_Machine Learning_Pytorch - Fatal编程技术网

Python 在PyTorch教程中,`images,labels=dataiter.next()`如何工作?

Python 在PyTorch教程中,`images,labels=dataiter.next()`如何工作?,python,machine-learning,pytorch,Python,Machine Learning,Pytorch,在本教程中,如何分配图像、标签 trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,

在本教程中,如何分配图像、标签

trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
                                        download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
                                          shuffle=True, num_workers=2)

def imshow(img):
    img = img / 2 + 0.5     # unnormalize
    npimg = img.numpy()
    plt.imshow(np.transpose(npimg, (1, 2, 0)))


# get some random training images
dataiter = iter(trainloader)

images, labels = dataiter.next()
最后一行如何知道如何在
images,labels=dataiter.next()中自动分配
images,label


我检查了
DataLoader
类和
DataLoaderIter
类,但我认为我需要更多地了解iters的一般知识。

我认为理解iterable和迭代器之间的区别至关重要。iterable是可以迭代的对象。迭代器是一个对象,用于使用返回对象下一项的uuu next_uu_uuu方法在iterable对象上进行迭代

下面是一个简单的例子。考虑一个迭代,并使用下一个方法调用列表中的下一个项目。这将打印下一项,直到到达列表末尾。如果到达终点,将引发StopIteration错误

test = (1,2,3)
tester = iter(test)

while True:
    nextItem = next(tester)
    print(nextItem)
上面提到的类可能有类似的实现,但是它返回一个包含图像和标签的元组