常用的Tensor操作

1、通过tensor.view方法可以调整tensor的形状,但必须保证调整去前后元素总数一致。view不会修改自身的数据,返回新的tensor与原tensor共享内存,即更改其中的一个,另一个也会跟这改变。
2、实际中经常需要添加或减少某一维度,可用squeeze和unsqueeze这两函数。 import torch as t
a = t.arange(0,6)
b = a.view(2,3) #调整tensor的形状,不会修改自身数据
c = a.view(-1,3) #-1自动计算大小
'''
a = tensor([0, 1, 2, 3, 4, 5])
b = tensor([[0, 1, 2],
[3, 4, 5]])
c = tensor([[0, 1, 2],
[3, 4, 5]])'''
b = b.unsqueeze(1) #在第一维(下标从0开始)上增加“1”
'''tensor([[[0, 1, 2]], [[3, 4, 5]]])'''
c = c.unsqueeze(-2)
'''tensor([[[0, 1, 2]], [[3, 4, 5]]])'''
d = b.view(1,1,1,2,3)
'''tensor([[[[[0, 1, 2],
[3, 4, 5]]]]])'''
d = d.squeeze(0) #压缩第0维的“1”
'''tensor([[[0, 1, 2],
[3, 4, 5]]])'''
d = d.squeeze() #所有维度为“1”的压缩
'''tensor([[0, 1, 2],
[3, 4, 5]])''' 3、resize是另一种可用调整size的方法,但与view不同,它可以修改tensor的尺寸。如果新尺寸超过原尺寸,会自动分配新的内存空间,而如果新尺寸小于原尺寸,则之前的数据依旧会被保存。
b.resize_(1,3) #resize_调整size,新尺寸小于原尺寸,则之前的保留
'''tensor([[0, 1, 2]])'''
b.resize_(3,3) #resize_调整size,新尺寸大于原尺寸,会自动分配新的内存空间
'''tensor([[ 0, 1, 2],
[ 3, 4, 5],
[7526747973031060338, 7306812055932138085, 8389969046800051066]])'''

2018-10-23 17:59:12

常用的Tensor操作的更多相关文章

  1. 05_pytorch的Tensor操作

    05_pytorch的Tensor操作 目录 一.引言 二.tensor的基础操作 2.1 创建tensor 2.2 常用tensor操作 2.2.1 调整tensor的形状 2.2.2 添加或压缩t ...

  2. Oracle手边常用命令及操作语句

    Oracle手边常用命令及操作语句 作者:白宁超 时间:2016年3月4日11:24:08 摘要:日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规操作. ...

  3. TP5常用命令符操作

    ThinkPHP5常用命令符操作   1. 模块自动生成指令:   默认会读取应用目录application下面的build.php作为自动   生成的定义文件,如果你的定义文件位置不同,则需要使用 ...

  4. 原生JavaScript常用的DOM操作

    之前项目一直都是用JQuery或者Vue来做的,确实好用,毕竟帮我们解决了很多浏览器兼容问题,但是后面发现大公司面试题都是要原生Javascript来做,然后我就一脸懵逼哈哈哈,毕竟大公司需要的框架或 ...

  5. Tutorial 01_熟悉常用的Linux操作和Hadoop操作

    (一)熟悉常用的Linux 操作cd 命令:切换目录 (1) 切换到目录“/usr/local” (2) 切换到当前目录的上一级目录 (3) 切换到当前登录Linux 系统的用户的自己的主文件夹  ...

  6. Git 常用命令及操作总结

    Git常用命令及操作总结 By:授客 QQ:1033553122 利用TortoiseGit克隆源码库到本地 1.安装TortoiseGit 2.打开Git,进入到源码库,点击图示红色选框框选按钮,弹 ...

  7. 【转】python 历险记(四)— python 中常用的 json 操作

    [转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...

  8. python 历险记(四)— python 中常用的 json 操作

    目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...

  9. VC++常用数据类型及其操作详解

    原文地址:http://blog.csdn.net/ithomer/article/details/5019367 VC++常用数据类型及其操作详解 一.VC常用数据类型列表 二.常用数据类型转化 2 ...

随机推荐

  1. SQL SERVER获取信息的方法

    获取数据库的表 SELECT obj.name tablename, schem.name schemname, CAST ( CASE ) ) END AS BIT) HasPrimaryKey f ...

  2. Convolutional Pose Machines(理解)

    0 - 背景 人体姿态识别存在遮挡以及关键点不清晰等主要挑战,然而,人体的关键点之间由于人体结构而具有相互关系,利用容易识别的关键点来指导难以识别关键点的检测,是提高关键点检测的一个思路.本文通过提出 ...

  3. 2018-2019-2 20165234 《网络对抗技术》 Exp5 MSF基础应用

    实验五 MSF基础应用 实验内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.一个主动攻击实践,ms08_067(成功) 2. 一个针对浏览器 ...

  4. 【转】Beginning Game Programming v2.0

    Beginning Game Programming v2.0 Last Updated 8/19/18 Greetings everyone, welcome to the ground up re ...

  5. 【MySQL】MySQL基础操作语句

    mysql基础操作语句,包括数据库的增.删.切换,以及表的增.删.改.查.复制. 创建数据库 mysql> create database tem; 使用数据库 mysql> use te ...

  6. Eclipse使用技巧 - 2. Eclipse自动补全功能轻松设置

    本文介绍如何设置Eclipse代码自动补全功能.轻松实现输入任意字母均可出现代码补全提示框. Eclipse代码自动补全功能默认只包括 点”.” ,即只有输入”.”后才出现自动补全的提示框.想要自动补 ...

  7. C#连接MySQL

    由于工作需要,从本地Sqlite数据库转为MySql数据库.遇到了一些坑,随后又埋了.记录下过程: 一.安装MySql 首先上官网下载windows版的MySql.解压.详情是参考了几位同鞋的文章: ...

  8. solution for python can not import local module

    blog 这次遇到的问题是sys.path的输出不包含'',导致无法import当前文件和文件夹 When no ._pth file is found, this is how sys.path i ...

  9. ELK配置

    安装logstash docker pull logstash docker run -it --rm logstash -e 'input { stdin { } } output { stdout ...

  10. ios 开发视图界面动态渲染

    #import "MyView.h" IB_DESIGNABLE @interface MyView () @property (nonatomic, strong) IBInsp ...