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 通用、安全,不用操心连续性
相关推荐
Ivanqhz几秒前
Slope One 算法详解:与矩阵分解、共现矩阵的异同
java·服务器·网络·人工智能·深度学习
ikun_文22 分钟前
Django开启跨域请求
python·pycharm·django
外收内放23 分钟前
Python与AI应用(项目开发实战:AI智能伴侣第三版)
python·学习·ai编程
别动我齐刘海26 分钟前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
Logintern0929 分钟前
“以一致的顺序获取锁“是预防死锁最核心、最有效的手段
python·postgresql·锁机制
打工仔折腾 AI1 小时前
Prometheus 告警推钉钉:从单群 Webhook 到跨网络 Alertmanager 实战
人工智能·后端·python·性能优化
Ivanqhz1 小时前
Ping-Pong 双缓冲
开发语言·人工智能·python·深度学习·mlir
三十岁老牛再出发1 小时前
9月18日总结
python·深度学习·机器学习
就叫你天选之人啦1 小时前
安装torch+vllm+flash_attn的prompt
人工智能·pytorch·python
wuyk5552 小时前
21.计数排序:不用比较的“空间换时间”排序算法
python·算法·排序算法