1. unsqueeze(input, dim, out=None)函数 - 升维作用

参考链接

在指定的地方上增加一个维度

0(-2) [行扩展]: 表示在张量最外层增加一个中括号变成第一维
1(-1) [列扩展]:表示

>>> input = torch.arange(0,6)
>>> input
tensor([0, 1, 2, 3, 4, 5])
>>> input.shape
torch.Size([6])>>> print(input.unsqueeze(0))
tensor([[0, 1, 2, 3, 4, 5]])
>>> print(input.unsqueeze(0).shape)
torch.Size([1, 6])>>> print(input.unsqueeze(1))
tensor([[0],[1],[2],[3],[4],[5]])
>>> print(input.unsqueeze(1).shape)
torch.Size([6, 1])

2. squeeze(input,dim,out=None) 降维函数

将输入张量形状中的1 去除并返回。 如果输入是形如(A×1×B×1×C×1×D),那么输出形状就为: (A×B×C×D)

小例子

如果是一个列表的tensor例如x变量想要转换成相同维度的tensor可以采用如下方式:
1)循环遍历列表中每个张量s,先使用unsqueeze(0)将每个张量s升维。
形状由torch.Size([3])变为torch.Size([1, 3])
【变化前:tensor([0, 1, 2]) 变化后:tensor([[0, 1, 2]])】

2)同时使用torch.cat()将其拼接起来 dim=0 表示横向拼接,否则竖向拼接
dim = 0 结果:

tensor([[0, 1, 2],[1, 0, 2],[1, 2, 0],[2, 1, 0]])

dim = 1 结果:

tensor([[0, 1, 2, 1, 0, 2, 1, 2, 0, 2, 1, 0]])
>>> import torch
>>> x = [torch.tensor([0,1,2]),torch.tensor([1,0,2]),torch.tensor([1,2,0]),torch.tensor([2,1,0]),]
>>> x
[tensor([0, 1, 2]), tensor([1, 0, 2]), tensor([1, 2, 0]), tensor([2, 1, 0])]
>>> x = torch.cat([s.unsqueeze(0) for s in l],0)
>>> x
tensor([[0, 1, 2],[1, 0, 2],[1, 2, 0],[2, 1, 0]])

3. max()的用法

更加详细参见我的另一篇文章:Pytorch学习-torch.max()和min()深度解析
non_final_next_states.max(1)[1].detach()
# 行维度 .max(1)[0] 返回values的最大值列表 .max(1)[1]返回最大值index列表
# 列维度 .max(0)[0] 返回values的最大值列表 .max(0)[1]返回最大值index列表

4. detach() 和detach_()

参考链接

torch.detach() - 返回一个新的没有梯度的tensor [生成一个新的tensor]

返回一个新的tensor,从当前计算图中分离下来的,但是仍指向原变量的存放位置,不同之处只是requires_grad为false,得到的这个tensor永远不需要计算其梯度,不具有grad。

即使之后重新将它的requires_grad置为true,它也不会具有梯度grad

torch.detach_() - 直接修改该tensor[对其本身的更改],将其设置为无自动计算梯度的张量

将一个tensor从创建它的图中分离,并把它设置成叶子tensor

5. torch.Tensor和torch.tensor的区别

参考

在Pytorch中,Tensor和tensor都用于生成新的张量。

torch.Tensor() 生成单精度浮点型张量

  • torch.Tensor()是Python类,更明确的说,是默认张量类型torch.FloatTensor()的别名,torch.Tensor([1,2]) 会调用Tensor类的构造函数__init__,生成单精度浮点类型的张量。

torch.tensor() 根据原始data生成对应类型的张量

torch.tensor()仅仅是Python的函数,函数原型是:

torch.tensor(data, dtype=None, device=None, requires_grad=False)

其中data可以是:list, tuple, array, scalar等类型。
torch.tensor()可以从data中的数据部分做拷贝(而不是直接引用),根据原始数据类型生成相应的torch.LongTensor,torch.FloatTensor,torch.DoubleTensor。

5.torch.cat() 的用法

参考链接

Pytorch学习- 小型知识点汇总 unsqueeze()/squeeze() 和 .max() 等等相关推荐

  1. 机器学习、深度学习面试知识点汇总

    作者丨Oldpan 来源丨oldpan博客 编辑丨极市平台 导读 本文总结了一些秋招面试中会遇到的问题和一些重要的知识点,适合面试前突击和巩固基础知识. 前言 最近这段时间正临秋招,这篇文章是老潘在那 ...

  2. pytorch学习资源汇总

    pytorch学习资源汇总 https://pytorchchina.com/2019/05/07/awesome-pytorch-chinese/ PyTorch学习教程.手册 PyTorch英文版 ...

  3. Pytorch view()、squeeze()、unsqueeze()、torch.max()

    本篇博客主要向大家介绍Pytorch中view().squeeze().unsqueeze().torch.max()函数,这些函数虽然简单,但是在 神经网络编程总却经常用到,希望大家看了这篇博文能够 ...

  4. 前端小白学习路线及知识点汇总(三)-- JavaScript基础

    前端小白学习路线及知识点汇总(三)-- JavaScript基础 一. JavaScript的组成 ECMAScript:由ECMA国际进行标准化的一门编程语言,往往被称为JavaScript或Jsc ...

  5. 新手必备 | 史上最全的PyTorch学习资源汇总

    目录: PyTorch学习教程.手册 PyTorch视频教程 PyTorch项目资源      - NLP&PyTorch实战      - CV&PyTorch实战 PyTorch论 ...

  6. PyTorch学习笔记2:nn.Module、优化器、模型的保存和加载、TensorBoard

    文章目录 一.nn.Module 1.1 nn.Module的调用 1.2 线性回归的实现 二.损失函数 三.优化器 3.1.1 SGD优化器 3.1.2 Adagrad优化器 3.2 分层学习率 3 ...

  7. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  8. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  9. Pytorch学习-Task1

    PyTorch学习-Task1:PyTorch张量计算与Numpy的转换 张量 Tensor 1.张量的定义 2.张量的运算 3.Tensor与Numpy类型的转换 4.自动求导 pytorch 与神 ...

最新文章

  1. Django 模板HTML转义和CSRF4.3
  2. 一图简述大数据技术生态圈
  3. php 去除二维数组中的包含某一个值的数组
  4. [蓝桥杯2015决赛]分机号-枚举(水题)
  5. jzoj1013-GCD与LCM【数论】
  6. 二叉树题目----5 平衡二叉树 AND 根据二叉树创建字符串
  7. 从未有过的空闲学校生活
  8. 数据结构知识点总结pdf_闭关修炼31天,“啃完”346页pdf,我终于四面拿下阿里offer!...
  9. laravel 配置邮件发件人_Jenkins中配置自动化测试项目
  10. Springboot项目启动报错:
  11. 撰写项目的解决方案要点解析
  12. CSS opacity - 实现图片半透明效果
  13. Proxmark3教程1:用PM3解密复制M1全加密门禁IC卡图文详细介绍
  14. 程序员应该每年更新自己的简历
  15. 1.18 物主代词 形容词 宾语从句
  16. c语言程序设计模拟卷视频,《C语言程序设计》模拟试卷A卷.doc
  17. 物联网背景的智慧农业 能否搭上顺风车
  18. 语音识别基本原理学习
  19. 计算机保研面试基础知识,华科计算机保研复试机试题目
  20. 关于R语言中时间类POSIXct和POSIXlt的一点儿学习收获

热门文章

  1. 【pointnet++点云识别】基于pointnet++的点云地理数据识别的MATLAB仿真
  2. 【system generator】基于system generator的根号运算系统实现
  3. elasticsearch 6.6 安装(CentOS 7.5) 修订
  4. tomcat端口被占用
  5. C# Azure 存储-分布式缓存Redis的新建配置查看
  6. Eclipse更改系统主题
  7. Java中使用SQLite数据库
  8. 决定把BLOG的文章从CU上同步过来
  9. cygwin不能执行make
  10. 《计算机组成与设计(ARM版)》读书笔记-第二章指令2