tensor.view()、torch.flatten()
一、tensor.view()
view()函数不改变原始数据。
例:
import torchdata = torch.randn(2, 3, 3, 5, 5) #b,corps,c,h,w
print(data.size()) #torch.Size([2, 3, 3, 5, 5])b = data.view(-1, 3, 5, 5)
print(b.size()) #torch.Size([6, 3, 5, 5])
print(data.size()) #torch.Size([2, 3, 3, 5, 5])。 view()函数并不改变data的值
二、torch.flatten()
torch.flatten()函数经常用于写分类神经网络的时候,比如《观察torchvision自带的alexnet模型》,经过最后一个卷积层之后,一般会再接一个自适应的池化层,输出一个B*C*H*W的向量。这时候就需要用到torch.flatten()函数将这个向量拉平成一个B*x的向量(其中,x = C*H*W),然后送入到FC层中。如:
语法:
torch.flatten(input, start_dim=0, end_dim=-1)
input: 一个 tensor,即要被“摊平”的 tensor。
start_dim: “摊平”的起始维度。
end_dim: “摊平”的结束维度。
因为往往输入的是B*C*H*W,我们需要把C*H*W摊平,最后变成B个一维向量。所以摊平的起始维度是1,不能是0。【例1】
例1:
import torchdata_pool = torch.randn(2, 2, 3, 3) #模拟经过最后一个池化层或自适应池化层之后的输出。Batchsize*c*h*w
print(data_pool)y = torch.flatten(data_pool, 1)
print(y)
结果:
结果是一个B*x的向量。
tensor.view()、torch.flatten()相关推荐
- pytorch中的reshape()、view()、nn.flatten()和flatten()
在使用pytorch定义神经网络结构时,经常会看到类似如下的.view() / flatten()用法,这里对其用法做出讲解与演示. torch.reshape用法 reshape()可以由torch ...
- Pytorch中 permute / transpose 和 view / reshape, flatten函数
1.transpose与permute transpose() 和 permute() 都是返回转置后矩阵,在pytorch中转置用的函数就只有这两个 ,这两个函数都是交换维度的操作 transpos ...
- PyTorch:tensor、torch.nn、autograd、loss等神经网络学习手册(持续更新)
PyTorch1:tensor2.torch.nn.autograd.loss等神经网络学习手册(持续更新) 链接:画图.读写图片 文章目录 一.tensor 二.完整训练过程:数据.模型.可学习参数 ...
- PyTorch 笔记(02)— 常用创建 Tensor 方法(torch.Tensor、ones、zeros、eye、arange、linspace、rand、randn、new)
1. Tensor 概念分类 PyTorch 中的张量(Tensor)类似 NumPy 中的 ndarrays,之所以称之为 Tensor 的另一个原因是它可以运行在 GPU 中,以加速运算. 1.1 ...
- Pytorch view()、squeeze()、unsqueeze()、torch.max()
本篇博客主要向大家介绍Pytorch中view().squeeze().unsqueeze().torch.max()函数,这些函数虽然简单,但是在 神经网络编程总却经常用到,希望大家看了这篇博文能够 ...
- PyTorch 笔记(09)— Tensor 线性代数计算(torch.trace、torch.diag、torch.mm、torch.dot、torch.inverse逆矩阵、转置)
1. 常用函数 常用线性表函数如下表所示: 2. 使用示例 2.1 torch.trace In [22]: import torch as tIn [23]: a = t.arange(1, 10) ...
- PyTorch 笔记(08)— Tensor 比较运算(torch.gt、lt、ge、le、eq、ne、torch.topk、torch.sort、torch.max、torch.min)
1. 常用函数 比较函数中有一些是逐元素比较,操作类似逐元素操作,还有一些类似归并操作,常用的比较函数如下表所示. 表中第一行的比较操作已经实现了运算符重载,因此可以使用 a>=b,a>b ...
- 通俗讲解Pytorch梯度的相关问题:计算图、torch.no_grad、zero_grad、detach和backward;Variable、Parameter和torch.tensor
文章目录 with torch.no_grad()和requires_grad backward() Variable,Parameter和torch.tensor() zero_grad() 计算图 ...
- pytorch torch.Tensor.view
应用 >>> x = torch.randn(4, 4) >>> x.size() torch.Size([4, 4]) >>> y = x.vi ...
最新文章
- 我也转发一个关于特斯拉的文章
- DDR的前世与今生(一)
- mxnet java 例子_mxnet(gluon) 实现DQN简单小例子
- DataGrid中添加DropdownList时的数据绑定
- 深度学习和目标检测系列教程 11-300:小麦数据集训练Faster-RCNN模型
- 2018-行远自迩,登高自卑
- HALCON示例程序measure_metal_part_id.hdev使用xld边缘拟合检测零件加工是否合格
- python中如何标识语句块_如何用python在一个块中编写多个try语句?
- 话里话外:冯军的担心 “pk” 流程规范化
- Unity从Asset Store下载的资源安装包默认的保存位置及其修改
- 虚拟机桥接模式下和windows相互ping通
- 网上打印个人完税证明流程
- GNSS定位中的不同高度概念及计算
- BootStrap之导航navigation
- 读书若谈恋爱:如何阅读一本书?
- moveit缺少libfcl.so.0.6文件
- landesk桌面管理服务器安装篇
- TextView里的setText方法
- silk 编解码器下载
- 云和恩墨数据库一体机助力天安人寿 zData架构高效运行