torch:view和reshape的区别

复制代码
import torch

x = torch.randn(4, 6)      # shape: (4,6)
# view 用法
y = x.view(3, 8)           # shape: (3,8)
# reshape 用法
z = x.reshape(2, 12)       # shape: (2,12)
# 使用 -1 自动推断某一维度
w = x.view(-1, 8)          # 自动计算第一维为 3  (24/8=3)

注意:元素总数必须不变,否则抛出错误。

两者都用于改变张量的形状(不改变元素总数),但内部行为略有不同:

函数 连续性要求 内存行为 推荐场景
view 要求张量连续(contiguous) 返回视图,与原张量共享数据(零拷贝) 确定内存连续时使用,最高效
reshape 不要求连续 尽可能返回视图;若连续则等价于view,否则自动复制后再view 通用、安全,不用操心连续性
相关推荐
AI人工智能+7 分钟前
智能文档抽取系统采用“解析底座+大模型“双引擎架构,突破传统OCR局限
深度学习·ocr·文档抽取
小大宇34 分钟前
Python 集成 Conda
开发语言·python·conda
初学者,亦行者1 小时前
利用Pyecharts绘制堆叠柱状图
python·信息可视化·数据分析
林泽毅1 小时前
PyTRIO:当强化学习不再需要本地GPU
人工智能·python·深度学习·机器学习
小陈phd1 小时前
QAnything 阅读优化策略05——检索
人工智能·python·机器学习
ruofu331 小时前
wsl端是py312,但是项目是py311, 如何下载py311的依赖包(wheels)
python·docker
小大宇2 小时前
python flask框架 SSE流式返回、跨域、报错
开发语言·python·flask
像风一样的男人@2 小时前
python --fastapi推流AI推理
人工智能·python·fastapi
2601_956319882 小时前
最新量化开发卡住,先查规则和流程是否完整
人工智能·python