>>> a = torch.Tensor([[1,2],[3,4]])
>>> a
tensor([[1., 2.],
[3., 4.]])
>>> a[1] 类似python中的列表的取值
tensor([3., 4.])
>>> a[0]
tensor([1., 2.])
>>> a > 0 返回布尔值或者0,1
tensor([[True, True],
[True, True]])
>>> a = torch.Tensor([[0,2],[3,4]])
>>> a > 0
tensor([[False, True],
[ True, True]])
>>> a[a>0] 类似于列表
tensor([2., 3., 4.])
>>> torch.nonzero(a) 返回非0的坐标
tensor([[0, 1],
[1, 0],
[1, 1]])
>>> torch.full_like(a,1)   将a中的值全部为1
tensor([[1., 1.],
[1., 1.]])
>>> torch.where(a>1,torch.full_like(a,1),a) 条件判断 条件成立则为前者,条件不成立则为后者
tensor([[0., 1.],
[1., 1.]])
>>> a.clamp(1,6)  限制最小值为1,最大值为6
tensor([[1., 2.],
[3., 4.]])

Tensor的变形

>>> b = a.resize(2,2)
>>> b
tensor([[1, 2],
[3, 4]])
>>> b = a.reshape(2,2)
>>> b
tensor([[1, 2],
[3, 4]])
>>> b = a.reshape(1,4)
>>> b
tensor([[1, 2, 3, 4]])
>>> b = a.resize_(2,7)
>>> b
tensor([[ 1, 2, 3,
4, 25896191785238631, 27866512327901300,
32932988893003880],
[32088589733920884, 26740517931057249, 27866495148425318,
30962724186423412, 26740530815434867, 32651548277211241,
31525394966315103]])
>>> b = a.resize_(1,2)    #a.resize_()可以直接改变Tensor的尺寸(在原地改变)如果超过原来尺寸则会重新分配内存,多出的部分置0,如果小于原来的Tensor大小则剩余的部分仍然会隐藏保留。
>>> b
tensor([[1, 2]])

#resize() reshape() view() 在括号中输入矩阵的尺寸可以直接修改 但不能超过原来的Tensor尺寸。。。

>>> a = torch.randn(2,2,3)
>>> a
tensor([[[ 1.9844, -1.1686, 0.1745],
[ 0.9595, 1.4640, -0.5703]],

[[-1.0130, -0.1706, 0.6245],
[ 0.7703, -1.0161, -0.1846]]])
>>> b = a.transpose(0,1)
>>> b
tensor([[[ 1.9844, -1.1686, 0.1745],
[-1.0130, -0.1706, 0.6245]],

[[ 0.9595, 1.4640, -0.5703],
[ 0.7703, -1.0161, -0.1846]]])
>>> a.permute(2,1,0)
tensor([[[ 1.9844, -1.0130],
[ 0.9595, 0.7703]],

[[-1.1686, -0.1706],
[ 1.4640, -1.0161]],

[[ 0.1745, 0.6245],
[-0.5703, -0.1846]]])
>>> a
tensor([[[ 1.9844, -1.1686, 0.1745],
[ 0.9595, 1.4640, -0.5703]],

[[-1.0130, -0.1706, 0.6245],
[ 0.7703, -1.0161, -0.1846]]])
>>>

squeeze()和 unsqueeze()来处理size为1的维度

expand()和 expend_as()来复制拓展size为1为指定维度大小。

##expand和repeat可以实现维度的拓展

expand拓展维度的时候,如果维度要是不想变化,就用-1代替,

而且拓张的时候只能从1扩张成M 不可从n拓张成M

>>> b.shape
torch.Size([1, 32, 1, 1])
>>> b.expand(4,-1,4,4).shape
torch.Size([4, 32, 4, 4])

repeat的使用

想重复几次就在repeat()中就重复的数不重复的话就是1

>>> b.shape
torch.Size([1, 32, 1, 1])
>>> b.repeat(1,1,4,4).shape
torch.Size([1, 32, 4, 4])
>>>

Torch的索引与形变的更多相关文章

  1. 常用torch代码片段合集

    PyTorch常用代码段整理合集 本文代码基于 PyTorch 1.0 版本,需要用到以下包 import collections import os import shutil import tqd ...

  2. [转]Torch是什么?

    Torch是一个广泛支持机器学习算法的科学计算框架.易于使用且高效,主要得益于一个简单的和快速的脚本语言LuaJIT,和底层的C / CUDA实现:Torch | Github 核心特征的总结:1. ...

  3. (原)torch中显示nn.Sequential()网络的详细情况

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6065526.html 本部分多试几次就可以弄得清每一层具体怎么访问了. step1. 网络定义如下: ...

  4. PyTorch官方中文文档:torch.nn

    torch.nn Parameters class torch.nn.Parameter() 艾伯特(http://www.aibbt.com/)国内第一家人工智能门户,微信公众号:aibbtcom ...

  5. PyTorch官方中文文档:torch.Tensor

    torch.Tensor torch.Tensor是一种包含单一数据类型元素的多维矩阵. Torch定义了七种CPU tensor类型和八种GPU tensor类型: Data tyoe CPU te ...

  6. PyTorch官方中文文档:torch

    torch 包 torch 包含了多维张量的数据结构以及基于其上的多种数学操作.另外,它也提供了多种工具,其中一些可以更有效地对张量和任意类型进行序列化. 它有CUDA 的对应实现,可以在NVIDIA ...

  7. pytorch中文文档-torch.nn常用函数-待添加-明天继续

    https://pytorch.org/docs/stable/nn.html 1)卷积层 class torch.nn.Conv2d(in_channels, out_channels, kerne ...

  8. Tensor索引操作

    #Tensor索引操作 ''''' Tensor支持与numpy.ndarray类似的索引操作,语法上也类似 如无特殊说明,索引出来的结果与原tensor共享内存,即修改一个,另一个会跟着修改 ''' ...

  9. pytorch torch.Storage学习

    tensor分为头信息区(Tensor)和存储区(Storage) 信息区主要保存着tensor的形状(size).步长(stride).数据类型(type)等信息,而真正的数据则保存成连续数组,存储 ...

随机推荐

  1. springboot静态资源无法访问

    前言 今天使用springboot+layui+shiro实现一个前后端分离的商城后台系统,一个小小静态资源(image)问题搞了一下午:还好坚持了下来,否者崩溃.吐血都是小事 这是引入的路径 这是图 ...

  2. Spring-注入方式(基于xml方式)

    1.基于xml方式创建对象 <!--配置User类对象的创建 --> <bean id="user" class="com.at.spring5.Use ...

  3. 帝国CMS只备份栏目和模板的方法

    方法一:不备份所有帝国cms数据内容表 我们知道帝国cms有8大模型,分别是 1.新闻系统数据表 ( phome_ecms_news )2.下载系统数据表 ( phome_ecms_download  ...

  4. 初识gradle, idea+springboot Demo

    写在前面; 使用maven管理写过几个springboot的系统, 此篇博客纯属记录整理学习的过程. 另外, 源码分享地址在最后. Java: 1.8.0_281 tomcat: 1.8 IDE: I ...

  5. 牛客网 第十八届浙大城市学院程序设计竞赛(同步赛)J--万万没想到 啦啦啦啦啦

    我觉得我可以继续wa下去(手动魔鬼笑)--------------------------------------------   原题链接:https://ac.nowcoder.com/acm/c ...

  6. tomcat的搭建和介绍

    第19章 tomcat的搭建 19.1 tomcat学习之前的预备知识 19.1.1 什么是JVM和JDK,JRE JVM            java虚拟机,实现一份代码可以在不同的平台执行,具有 ...

  7. JavaScript 数学 (Math) 方法

    一.Math 方法 1.Math.round(x) 的返回值是 x 四舍五入为最接近的整数: Math.round(7.8); // 返回 8 Math.round(3.3); // 返回 3 2.M ...

  8. 新华三Gen10服务器ILO 5 安装中文语言包

    ILO 5 安装中文语言包 在官网下载语言包文件,并解压 选择firmware&OS software,点击右侧的update firmware 选择本地文件,浏览到语言包里面的lpk文件,点 ...

  9. python学习-Day5

    目录 今日学习内容详解 流程控制理论 程序执行流程分类: 重点小知识* 分支结构(if 语法) 单 if 分支 if 与 else 分支 if 与 elif 与 else 分支 if嵌套 练习 循环结 ...

  10. 代码管理工具-Git基础介绍及常用技巧

    目录 Git起源 基本概念 Branch.HEAD和Commit tree Git分支 git merge 和 git rebase 的区别和抉择 与远程仓库的交互 关于一些实际开发场景的问题和解决方 ...