**Pytorch 中view函数和reshape函数的区别*
Pytorch 中view函数和reshape函数的区别(我是一名大一刚学计算机的学生 希望我的说法对你有帮助)
首先:要了解这个问题我们要先了解一个基本知识
张量的储存方式
跟据图片我们可以清楚的看到定义一个tensor 数据是由头信息区和存储区组成
学过C语言的同学都知道类似结构体中的指针变量指向储存区
有了上述的知识的铺垫我们开始讲veiw函数
这个函数的功能是改变函数的形状(但是其维度必定是原维度的子集)
我给你们举一个例子吧 在次之前先讲一个知识点
我们都知道tensor可以创建一个矩阵如下图:
又因为:
在pytorch中tensor底层实现是C 所以使用的是行优先顺序
所以内存中的数据排列如下
现在我来讲view函数:
它可以返回一个值却不能改变数据排列
举个例子如果我们要转置一个矩阵 为了保证连续性数据结构如下图所示
这里解释一下什么是连续性
你们可以想象一下,上图中的数据不能出现[0,8…]
这样的矩阵
如果我们想作到转置,我们要使用contiguous函数重新开一个空间来放置上述数据
但reshape函数可以轻松解决这个问题
因为reshape函数的本质我觉的就是view函数+contiguous函数
总结:
主要区别就是是否满足连续性
所以我们主要用reshape函数
**Pytorch 中view函数和reshape函数的区别*相关推荐
- Pytorch中view()方法和resize()方法的区别
1.view() 通过tensor.view方法可以调整tensor的形状,但必须保证调整前后元素总数一致.view不会修改自身的数据,返回的新tensor与源tensor共享内存,即更改其中一个,另 ...
- Numpy中的shape、reshape函数
shape函数可以了解数组的结构:reshape()函数改变数组的结构. 目录 1 shape()函数 2 reshape()函数 1 shape()函数 读取矩阵的长度,比如shape[0]就是读取 ...
- 机器学习9:关于pytorch中的zero_grad()函数
机器学习9:关于pytorch中的zero_grad()函数 本文参考了博客Pytorch 为什么每一轮batch需要设置optimizer.zero_grad. 1.zero_grad()函数的应用 ...
- Pytorch中的Conv1d()和Conv2d()函数
文章目录 一.Pytorch中的Conv1d()函数 二.Pytorch中的Conv2d()函数 三.Pytorch中的MaxPool1d()函数 四.pytorch中的MaxPool2d()函数 参 ...
- pytorch中的expand()和expand_as()函数--扩展张量中某维数据的尺寸
pytorch中的expand()和expand_as()函数 1.expand()函数: (1)函数功能: expand()函数的功能是用来扩展张量中某维数据的尺寸,它返回输入张量在某维扩展为更大尺 ...
- Pytorch中什么时候调用forward()函数
Module类是nn模块里提供的一个模型构造类,是所有神经网络模块的基类,我们可以继承它来定义我们想要的模型.下面继承Module类构造本节开头提到的多层感知机.这里定义的MLP类重载了Module类 ...
- PyTorch中的循环神经网络RNN函数及词嵌入函数介绍
一.pytroch中的RNN相关函数介绍 1.对于简单的RNN结构,有两种方式进行调用: 1.1 torch.nn.RNN():可以接收一个序列的输入,默认会传入全0的隐藏状态,也可以自己定义初始的隐 ...
- Python | numpy库 | shape函数与reshape函数
shape:返回数据有多少行多少列. reshape():是与数组array有关的方法,用来重新组织数据 下面代码案例可供参考 一.shape:返回数据有几行几列 1.案例代码 代码如下(示例): i ...
- pytorch中的squeeze和unsqueeze函数的使用
应用场景:当我们进行深度学习使用Image函数导入图片时,默认它的维度为[C, H, W],此时根据模型的需要导入batch这一维度. 部分程序 # 导入要测试的图像(自己找的,不在数据集中),放在源 ...
最新文章
- 教你用TensorFlow实现神经网络(附代码)
- python 日志封装
- 服务器集群技术(备份服务器方案和均摊工作方案)(用来解决服务器挂掉问题)...
- 如何在Windows上解决蓝牙问题
- SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元
- 盐噪声和胡椒噪声的区别_为什么加一点盐对您的密码很有用(但不包括胡椒粉!)
- Bootstrap表单的可选布局
- 数据结构—队列、循环队列、双端队列
- JavaScript HTML DOM 元素(节点)
- php千月影视,千月影视双端源码完美运营新手搭建教程
- 松下服务器a5系列,松下 A5系列)MADHT1505 伺服驱动器
- 红警安装中出现的问题 win10,黑屏和无法联机对战(缺少ipx协议)的问题。
- STM32F103 硬件SPI+WM8978单声道语音回环
- 生信分析是个什么玩意儿?
- java实现接口必须实现所有方法吗_我们是否必须在实现Java接口的类中实现所有方法?...
- html的nofollow标签,详解:什么是Nofollow标签!
- Java的面向对象 -- 继承
- smartbi连接mysql数据库_数据源连接 - Smartbi V7 帮助中心 - Smartbi 在线知识中心
- CDGA|数据治理如何做?找准目标是关键
- [PHP]学生成绩管理系统
热门文章
- A. Red Versus Blue
- StreamReader读取乱码
- 双线性池化(Bilinear Pooling)详解、改进及应用
- PCB Design Rules﹣Un-Connected Pin
- Ubuntu 22.04 root直接登录设置
- webgl之Three.js学习 day10定制着色器和渲染后期处理
- 设置html前导符,或要在制表符前插入特定字符(前导符)
- 易基因:全基因组CpG密度和DNA甲基化分析方法比较(MeDIP、RRBS和WGBS)| 研究综述
- 2021年危险化学品经营单位主要负责人最新解析及危险化学品经营单位主要负责人考试试卷
- [NewLife.XCode]实体队列(多线程生产的大数据集中保存)