python - PyTorch Sampler:如果指定,下一次迭代采样相同的子集还是另一个子集?
问题描述
如果我有如下代码:
dataset = Dataset(...)
sampler = RandomSampler(...)
dataloader = DataLoader(..., sampler=sampler)
然后每当我打电话时:
for data, label in dataloader:
...
data, label
与上次调用相比,返回的元组是相同的子集还是不同的子集?
解决方案
与上次调用相比,它是不同的子集。我在这里为您的问题修改示例:
data = torch.rand(10,1)
dataset = torch.utils.data.TensorDataset(torch.arange(len(data)),data)
index,_ = dataset[:]
sampler = torch.utils.data.RandomSampler(index)
loader = torch.utils.data.DataLoader(dataset, sampler=sampler, batch_size=3)
for i in range(2):
for data, label in loader:
print(data, label)
print("------------")
推荐阅读
- laravel - 关于如何将此添加租户方法转换为可以接受/拒绝的请求的建议/指导
- lenskit - 如何仅测试相关项目并从 Lenskit 3.0-M2 中的交叉折叠测试中删除热门项目
- node.js - vim、FreeBSD 和 nodemon
- python - 密码和注册码
- c# - 如何强制hangfire服务器在重新启动时删除该特定服务器的旧服务器数据?
- microservices - 使用 Consul 配置 Istio-Envoy
- r - 拆分样本并对其进行操作
- google-drive-api - 通过 API 重命名 Google Drive 中的文件夹
- ruby - Intellij社区版无法添加ruby SDK
- java - Graphics2D 文本和点位置