You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch DataLoader返回的torch.Size([64])与(64,)有何差异?

核心结论

torch.Size([64]) 与 (64,) 没有本质区别,二者表示的张量形状完全等价,仅所属类型不同。

二者的类型差异
  • torch.Size([64]) 是PyTorch内置的形状类,继承自Python原生的tuple类型,专门用来表示张量的维度属性。
  • (64,) 是Python原生的元组,是通用的形状表示写法,不绑定特定框架。
等价性验证

你可以通过简单代码验证二者的等价关系:

import torch
# 模拟DataLoader返回的y张量
y = torch.tensor([i for i in range(64)])
# 形状相等判断
print(y.shape == (64,))  # 输出 True
# 类型校验
print(isinstance(y.shape, tuple)) # 输出 True
输出差异的原因

教程中使用(64,)描述形状是通用写法,用来直观表示1维、长度为64的张量维度;而你实际运行得到的torch.Size([64])是PyTorch对该形状的原生输出形式,二者在做维度判断、形状匹配、索引取值等操作时用法完全一致,不会影响后续逻辑。

代码是否需要修改

不需要。你当前生成的标签张量形状完全符合预期,没有错误。
内容的提问来源于stack exchange,提问作者Melody Gao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.26 15:27:04