pytorch的 Size[3] 和 Size[3,1] 区别

今天参考d2l-zh-pytorch做循环神经网络中第一个练习时,没有导入d2l库(之前遇到到跟本地numpy冲突),部分需要d2l库的部分采用手搓,发现损失总是不收敛,跟预期极大。经过不断排查,发现是reshape((-1,1))这个写错了,我写成reshape((-1))了。没想到不报错,模型还能训练(

在张量中,维度是用来表示数据结构的多维性。标量(scalar)是一个具有单一值的张量。

python 复制代码
import torch
x = torch.tensor(4)

print(f"x值(tensor类型): {x}\n",
      f"x的数值(数字): {x.item()}\n",
      f"x的维度: {x.shape}")
# x值(tensor类型): 4
#  x的数值(数字): 4       
#  x的维度: torch.Size([])

这里的x就是为标量,它没有维度,所以是[]

标量没有维度!!!

python 复制代码
import torch
x = torch.tensor([1,2,3])

print(f"x值(tensor类型): {x}\n",
      f"x的维度: {x.shape}\n",

      f"x[0]的值(tensor类型): {x[0]}\n",
      f"x[0]的数值(数字): {x[0].item()}\n",
      f"x[0]的维度: {x[0].shape}")
# x值(tensor类型): tensor([1, 2, 3])
#  x的维度: torch.Size([3])
#  x[0]的值(tensor类型): 1
#  x[0]的数值(数字): 1
#  x[0]的维度: torch.Size([])

这个上面的x是一维张量(向量),单个x元素是标量,没有维度。

python 复制代码
import torch
x = torch.tensor([1,2,3])
x = x.reshape((-1,1))
print(f"x的维度: {x.shape}\n",
      f"x[0]的维度: {x[0].shape}\n"
      f"x[0]的数值: {x[0].item()}")
# x的维度: torch.Size([3, 1])
#  x[0]的维度: torch.Size([1])
# x[0]的数值: 1

这个上面的x是二维张量(向量),单个x元素是一维张量,维度为1。

因为之前主要写C++,所以当pytorch输出Size[3]时觉得是(1,3)这样维度为2的。这是由于我没有考虑到张量和标量的区别。

相关推荐
武汉知识图谱科技3 分钟前
国家首次探索“词元交易”:大模型时代的知识产权困境与知识图谱的“价值锚定”机会
人工智能·知识图谱
实在智能RPA6 分钟前
金融行业财务审核自动化工具推荐:2026企业级AI Agent与智能合规选型指南
人工智能·ai·金融·自动化
热爱生活的五柒23 分钟前
深度学习大幅度提高准确率方法,本人亲测,调参方法,大幅度提升准确率方法(极其重要!!!多次看!0430)
人工智能·深度学习
FlagOS智算系统软件栈23 分钟前
众智 FlagOS Day0 实现 DeepSeek-V4 八芯适配:1.6T & 284B双模型,多元算力开箱即用
人工智能
多思考少编码24 分钟前
PAT甲级真题1001 - 1005题详细题解(C++)(个人题解)
c++·python·最短路·pat·算法竞赛
Agent产品评测局25 分钟前
生产排期与MES/ERP系统打通,实操方法详解 —— 2026企业级智能体自动化选型与实战指南
java·运维·人工智能·ai·chatgpt·自动化
kft131425 分钟前
AI 驱动测试 2.0:当测试智能体成为你的“超级 QA“
大数据·人工智能·elasticsearch
ZhengEnCi29 分钟前
M5-markconv自定义CSS样式指南 📝
前端·css·python
启效云32 分钟前
启效云战略升级:本体论落地 AI 原生应用智能体,打造中国版 Palantir 数字基座
人工智能·低代码·软件开发·低代码开发·零码化编辑器
jarvisuni33 分钟前
GLM5.1 降智了?国模思考强度研究!
人工智能·ai编程