Torch的索引与形变
>>> 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的索引与形变的更多相关文章
- 常用torch代码片段合集
PyTorch常用代码段整理合集 本文代码基于 PyTorch 1.0 版本,需要用到以下包 import collections import os import shutil import tqd ...
- [转]Torch是什么?
Torch是一个广泛支持机器学习算法的科学计算框架.易于使用且高效,主要得益于一个简单的和快速的脚本语言LuaJIT,和底层的C / CUDA实现:Torch | Github 核心特征的总结:1. ...
- (原)torch中显示nn.Sequential()网络的详细情况
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6065526.html 本部分多试几次就可以弄得清每一层具体怎么访问了. step1. 网络定义如下: ...
- PyTorch官方中文文档:torch.nn
torch.nn Parameters class torch.nn.Parameter() 艾伯特(http://www.aibbt.com/)国内第一家人工智能门户,微信公众号:aibbtcom ...
- PyTorch官方中文文档:torch.Tensor
torch.Tensor torch.Tensor是一种包含单一数据类型元素的多维矩阵. Torch定义了七种CPU tensor类型和八种GPU tensor类型: Data tyoe CPU te ...
- PyTorch官方中文文档:torch
torch 包 torch 包含了多维张量的数据结构以及基于其上的多种数学操作.另外,它也提供了多种工具,其中一些可以更有效地对张量和任意类型进行序列化. 它有CUDA 的对应实现,可以在NVIDIA ...
- pytorch中文文档-torch.nn常用函数-待添加-明天继续
https://pytorch.org/docs/stable/nn.html 1)卷积层 class torch.nn.Conv2d(in_channels, out_channels, kerne ...
- Tensor索引操作
#Tensor索引操作 ''''' Tensor支持与numpy.ndarray类似的索引操作,语法上也类似 如无特殊说明,索引出来的结果与原tensor共享内存,即修改一个,另一个会跟着修改 ''' ...
- pytorch torch.Storage学习
tensor分为头信息区(Tensor)和存储区(Storage) 信息区主要保存着tensor的形状(size).步长(stride).数据类型(type)等信息,而真正的数据则保存成连续数组,存储 ...
随机推荐
- MongoDB 数据库开发规范
MongoDB 数据库开发规范 转载自-落雨_ https://developer.aliyun.com/article/255536 简介: mongoDB库的设计 mongodb数据库命名规范:d ...
- flink调优之RocksDB设置
一.开启监控 RocksDB是基于LSM Tree实现的,写数据都是先缓存到内存中,所以RocksDB的写请求效率比较高.RocksDB使用内存结合磁盘的方式来存储数据,每次获取数据时,先从内存中bl ...
- 编译实战 | 手摸手教你在Windows环境下运行Redis6.x
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是没事就愿意瞎捣鼓的Hydra. 不知道有没有小伙伴像我一样,平常开发中用的是windows操作系统,有时候想装点什么软件,一看 ...
- JavaScript学习总结5-作用域
由于所有的全局变量都会绑定到window上,如果不同的JS文件,使用了相同的全局变量,会造成冲突,可以把自己的代码全部放入及定义的唯一空间中,减少全局命名冲突问题
- 面试官:为什么Vue中的v-if和v-for不建议一起用?
一.作用 v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 true值的时候被渲染 v-for 指令基于一个数组来渲染一个列表.v-for 指令需要使用 item in item ...
- 基于Composer的Laravel扩展包开发工作流 ,实现laravle项目的文件管理(记录成长)
PHP Composer包开发 基于Composer的Laravel扩展包开发工作流 实现laravle项目的文件管理,添加文件/文件夹,删除文件,查看代码/文件(代码支持缩进,支持语法高亮) com ...
- vue学习day01
什么是 vue 构建用户界面 用 vue 往 html 页面中填充数据,非常的方便 框架 框架是一套现成的解决方案,程序员只能遵守框架的规范,去编写自己的业务功能! 要学习 vue,就是在学习 vue ...
- 2021.08.05 P7095 不离【扶咕咕出题】(贪心)
2021.08.05 P7095 不离[扶咕咕出题](贪心) [P7095 yLOI2020] 不离 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 游戏中人物有两个属性,我 ...
- python基础练习题(题目 文本颜色设置)
day23 --------------------------------------------------------------- 实例035:设置输出颜色 题目 文本颜色设置. 分析:不会, ...
- 论文翻译:2020_TinyLSTMs: Efficient Neural Speech Enhancement for Hearing Aids
论文地址:TinyLSTMs:助听器的高效神经语音增强 音频地址:https://github.com/Bose/efficient-neural-speech-enhancement 引用格式:Fe ...