gpt4 book ai didi

python - PyTorch DataLoader() 中的 next() 和 iter() 做了什么

转载 作者:行者123 更新时间:2023-12-03 16:02:00 25 4
gpt4 key购买 nike

我有以下代码:

import torch
import numpy as np
import pandas as pd
from torch.utils.data import TensorDataset, DataLoader

# Load dataset
df = pd.read_csv(r'../iris.csv')

# Extract features and target
data = df.drop('target',axis=1).values
labels = df['target'].values

# Create tensor dataset
iris = TensorDataset(torch.FloatTensor(data),torch.LongTensor(labels))

# Create random batches
iris_loader = DataLoader(iris, batch_size=105, shuffle=True)

next(iter(iris_loader))
next() 是什么意思和 iter()在上面的代码中做什么?我经历过 PyTorch's documentation并且还是很能理解什么是 next()iter()在这里做。谁能帮忙解释一下?提前谢谢了。

最佳答案

这些是 python 的内置函数,它们用于处理迭代。
基本上 iter()调用__iter__() iris_loader 上的方法它返回一个迭代器。 next()然后调用 __next__()该迭代器上的方法以获取第一次迭代。运行next()再次将获得迭代器的第二项,等等。
这种逻辑经常发生在“幕后”,例如在运行 for 时。环形。它调用 __iter__()方法,然后调用 __next__()在返回的迭代器上,直到它到达迭代器的末尾。然后它会引发 stopIteration循环停止。
有关更多详细信息和一些细微差别,请参阅文档:https://docs.python.org/3/library/functions.html#iter

关于python - PyTorch DataLoader() 中的 next() 和 iter() 做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62549990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com