pytorch - 如何从 pytorch DataLoader 获取特定样本?
问题描述
在 Pytorch 中,有没有办法使用类加载特定的单个样本torch.utils.data.DataLoader
?我想用它做一些测试。
本教程使用
trainloader = torch.utils.data.DataLoader(...)
images, labels = next(iter(trainloader))
获取随机批次的样本。有没有办法,使用DataLoader
,得到一个特定的样本?
干杯
解决方案
- 关闭
shuffle
输入DataLoader
- 用于
batch_size
计算您要查找的所需样品所属的批次 - 迭代到所需的批次
代码
import torch
import numpy as np
import itertools
X= np.arange(100)
batch_size = 2
dataloader = torch.utils.data.DataLoader(X, batch_size=batch_size, shuffle=False)
sample_at = 5
k = int(np.floor(sample_at/batch_size))
my_sample = next(itertools.islice(dataloader, k, None))
print (my_sample)
输出:
tensor([4, 5])
推荐阅读
- matlab - 在使用 RANSAC 算法之前,我们如何消除不属于目标区域的特征?
- javascript - 边缘、悬停和单击
- excel - xlUp - 选定值 1 - 和 xlDown - 选定值 4121 - vba fordrop downlist 而不是 -12
- java - 在组归约上按键触发嵌套结构的错误序列化
- html - Flexbox row-reverse 打破 IE 11 上的对齐项
- unit-testing - 为什么我不能在 jest.Mock 中模拟一个函数(必须在 spyOn 上使用 .mockImplementation)?
- java - Nuxeo 与 Spring Boot 的集成
- c# - Unity C# 碰撞
- java - 使用自定义对象的另一个 ArrayList 字段对 ArrayList 进行排序
- javascript - 在视图中加载变量,然后从组件 Vue.js 中使用它们