>>> 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. SpringMVC-组件分析之视图解析器(prefix,suffix)

    SpringMVC的默认组件都是在DispatcherServlet.properties配置文件中配置的: spring-webmvc->org/springframewrok/web/ser ...

  2. drf认证、权限、限流

    认证Authentication(5星) 认证逻辑及编写步骤 逻辑 认证类:用来校验用户是否登录,如果登录了,继续往下走,如果没有登录,直接返回 编写步骤 -第一步:写一个类,继承BaseAuthen ...

  3. Bootstrap Blazor 组件库 Row 布局组件(栅格系统)

    原文链接:https://www.cnblogs.com/ysmc/p/16133351.html 在 Bootstrap 中,栅格相信大家都很熟悉,简直就是布局神器啊,Bootstrap Blazo ...

  4. jsp第三次作业

    1.在jsp页面中使用include动态标记加载音频 <%@ page language="java" import="java.util.*" page ...

  5. 数据建模软件Chiner,颜值与实用性并存

    目录 一.chiner介绍 二.值得关注的功能点 2.1. 兼容各种格式的数据建模文件 2.2. 支持多数据库.代码生成 2.3. 支持逻辑视图与物理视图设计 2.4. 自动生成数据库文档 三.总结 ...

  6. 记一次Linux Centos7病毒清理

    记一次在工作中测试环境下中病毒的处理解决办法,都说linux系统非常安全,但是很多人百年一遇的病毒被我遇上了,公司三台测试环境服务器中招. 最开始系统突然变得很卡,使用top命令查看资源占用情况,发现 ...

  7. 增删改查- 万能map- 模糊查询

    1.编写接口 2.编写对应的mapper种的sql语句 3.测试 接口 public interface UserDao { List<User> getUserList(); //根据I ...

  8. QMetaObject::connectSlotsByName: No matching signal for XXX 原理探究

    问题引出: 在尝试实现<Qt5.9 c++开发指南>混合UI编程章节时,用纯代码形式实现了个小按钮,然后加了个对应的槽函数,运行时就提示了这个信息. 原因探究: 首先查阅官方手册中的说明: ...

  9. Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

    错误描述 在DBeaver执行DDL语句时报错:SQL 错误 [1293] [HY000]: Incorrect table definition; there can be only one TIM ...

  10. Linux-交互式转化批处理工具expect

    expect 是由Don Libes基于 Tcl( Tool Command Language )语言开发的,主要应用于自动化交互式 操作的场景,借助 expect 处理交互的命令,可以将交互过程如: ...