PyTorch中如何查看DataLoader加载数据的类型、形状及相关属性
查看PyTorch DataLoader加载数据的类型、形状及属性的方法
DataLoader本身是可迭代对象,没有直接存储整个数据集的张量内容,需要先通过迭代拿到单批次的实际数据,再逐层查看属性:
- 第一步:提取首个批次的实际数据
注意:DataLoader本身是可迭代对象,直接通过下标索引(如# 适配shuffle=True的场景,每次运行取到的具体样本是随机的,但结构属性固定 sample_batch = next(iter(train_iterator))train_iterator[0])访问内容会触发类型错误,必须先通过iter()转换为迭代器后再取批次
基础类型查看
- 直接查看整个batch的顶层结构类型:
type(sample_batch),常见返回为元组(格式如(特征, 标签))、字典、单个张量三类 - 如果是最常见的元组结构,可直接拆分出独立的特征、标签变量:
batch_features, batch_labels = sample_batch
若自定义MyDataset返回字典格式的批次内容,无需拆分变量,直接通过字段名访问对应值即可,例如
sample_batch["input"].shape
张量形状查看
- 对拆分后的特征、标签张量直接调用
shape属性即可获取维度信息:- 查看特征张量形状:
batch_features.shape,结合给出的代码参数(总样本1000、单样本长度50、batch_size=1000),预期输出为torch.Size([1000, 50])(实际维度由MyDataset的返回逻辑决定) - 查看标签张量形状:
batch_labels.shape
- 查看特征张量形状:
其他关联属性查看
- 查看张量存储的数据类型:
batch_features.dtype,可输出float32、int64等具体类型 - 查看张量的计算设备:
batch_features.device,可判断数据加载后存储在CPU还是指定GPU上 - 校验单批次实际样本数:
len(batch_features),可和预设的batch_size对比,判断是否存在最后一个批次样本数不足的情况 - 直接读取DataLoader自身的全局配置属性:
- 预设的批次大小:
train_iterator.batch_size - 关联的原始数据集对象:
train_iterator.dataset - 是否开启随机打乱:
train_iterator.shuffle
- 预设的批次大小:
内容的提问来源于stack exchange,提问作者user15135703
相关产品推荐
相关产品推荐

