了解Tensor

python里面的tensor跟tensorflow里面的tensor都表示张量,包含一些基本的运算。实际上跟numpy数组、向量、矩阵的格式基本一样。但是是专门针对GPU来设计的,可以运行在GPU上来加快计算效率。

PyTorch中定义tensor,就跟numpy定义矩阵、向量差不多,例如定义一个5×3的tensor,每一项都是0的张量:

定义一个5×3的tensor,每一项都是0的张量

可以从python的数组直接创建tensor:

从python的数组直接创建tensor

也可以直接从pytorch创建:

直接从pytorch创建Tensor

如果想看某个Tensor的形状的话,使用以下两种方法:(两种方法一样,前者更常见)


查看x的形状

常用初始化:


可以创建多维数组。里面是随机的数


创建数组,用fill函数填充参数


创建数组,里面填充随机数


创建数组,里面全为0


注意这里Tensor的每个元素赋值为0的zero没有s

Tensor基本操作:

1.tensor的切片、合并、变形、抽取操作


torch.cat(seq,dim=0,out=None) 把一堆tensor丢进去,按照dim指定的维度拼接、堆叠在一起


#按照0维度堆叠,对于矩阵,相当于“竖着”堆


#按照1维度堆叠,对于有矩阵,相当于“横着”拼

torch.chunk(tensor,chunks,dim=0)把tensor切成块,数量由chunks指定


images

改变形状:torch.reshape(input,shape),把tensor作为函数的输入;

                  tensor.view(shape),任何tensor的函数都可以。二者的返回值,都只是让我们从另一个视角看某个tensor,所以不会改变本来的形状,除非你把结果又赋值给原来的tensor。


#单纯的调用view函数,a的形状并不会变化


#调用reshape函数,a的形状依然不会变化


想让a的形状变化,比如把结果赋值给a

2.基本数学操作

加法:x+y;

           torch.add(x,y)  实际上.add()可以接受三个参数:torch.add(input,value,out=None),一般,如果直接torch.add(x,y),那么x,y本身都不会变化的,但是如果设置out=x,那么x久变成加和后的值。


images

特别地,若想进行in-place操作,就比方说y加上x,y的值就改变了。就可以用y.add_(x),这样y就直接被改变了(类似用法还有x.copy_(y))


此操作之前x为[[3,5,7]],y为[[2,3,4]]

乘法:torch.mul(input,other,out=None) 用input乘以othor

images

除法:torch.div(input,other,out=None) 用input除以other


images

指数:torch.pow(input,exponent,out=None) input的exponent次方,input为底数,exponent为指数


images

开根号:torch.sqrt(input,out=None)


images

(注意  .sqrt()操作是针对浮点型数的)

四舍五入到整数:torch.round(input,out=None)


images

argmax函数:torch.argmax(input,dim=None,keepdim=False) 返回指定维度最大值的序号,dim给的定义是:the demention to reduce.也就是把dim这个维度的,变成这个维度的最大值的index


images

取绝对值:torch.abs(input,out=None)

向上取整:torch.ceil(input,out=None)

刀削函数:torch.clamp(input,min,max,out=None) 把输入数据规范在min-max区间内,超过范围的用min、max代替

3、Torch Tensor与Numpy的互相转换

Tensor~Numpy:

直接用.numpy()即可。但是注意,转换后,numpy的变量和原来的tensor会共用底层内存地址,所以如果原来的tensor改变了,numpy变量也会随之改变.

images

Numpy~Tensor:

用torch.from_numpy()来转换.


同样,两者会共用内存地址

by PengSW_10 on 2019/2/8

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容