PyTorch | tensor的创建和基本运算

一、创建

1.1 基本的创建函数

x1=torch.empty(3,2)
x2=torch.rand(3,2)
x3=torch.zeros(3,2)
x4=torch.ones(3,2)
print(x1)
print(x2)
print(x3)
print(x4)

1.2 指定类型

上述的函数都可以用dtype参数指定类型

y2=torch.rand(3,2,dtype=torch.double)
y2

1.3 指定形状

可以用xx_like函数指定一个旧的tensor的形状

z1=torch.empty_like(x1)
z2=torch.rand_like(x1)
z3=torch.zeros_like(x1)
z4=torch.ones_like(x1)
print(z1)
print(z2)
print(z3)
print(z4)

1.3.1 补充:获得张量的形状

tensor.size()函数返回一个tensor.size类型的tuple,本质是tuple,支持一切tuple操作。

m=x.size()
print(m)
print(type(m))#本质上是一个tuple,支持一切元组操作

比如,可以用x,y=tuple1调出每一个维度

a,b=x.size()
print(a)
print(b) 

 二、加法运算

茴字有四种写法,你知道吗(ノ"◑ ◑)ノ"

2.1 加法

k=torch.rand(3,2)
l=torch.rand(3,2)

2.1.1 方法1

k+l

2.2.2 方法2

torch.add(k,l)

 

2.2.3 方法3

即使有out参数,返回值也是和

ans=torch.zeros_like(k)
output=torch.add(k,l,out=ans)
print(ans)
print(output)

 2.2.4 方法4

t1.add(t2)和t1.add_(t2)都会返回和,区别只是是否改变t1的值

k=torch.ones(3,2)
l=torch.ones(3,2)
output=k.add_(l)
print(k)
print(output)

k=torch.ones(3,2)
l=torch.ones(3,2)
output=k.add(l)
print(k)
print(output)

2.2.5 【补充2.2.4】in_place方法

在函数后面加一个_,意为改变原数据。例如x=copy_(y),它与x=y的区别是:前者将y的值赋给x,后者是x与y指向同一个地址。

k=torch.zeros(3,2)
l=torch.ones(3,2)
k=l
l+=1
print(k)
print(l)

k=torch.zeros(3,2)
l=torch.ones(3,2)
k.copy_(l)
l+=1
print(k)
print(l)

 

2.2 切片

#切片
r=torch.randn(3,2)
print(r)
print(r[:,1])

2.3 tensor.view()

#tensor.view
h=torch.randn(3,6)
h1=h.view(18)#不改变原来的h
h2=h.view(-1,9)
print(h.size(),h1.size(),h2.size())

print(h)
print(h2)#可见就是按照内存简单排布的

2.4 tensor.item()

只有一个元素时,可以将其取出

h2[0,0].item()

 

全部评论

相关推荐

老粉都知道小猪猪我很久没更新了,因为秋招非常非常不顺利,emo了三个月了,接下来说一下我的情况吧本人是双非本 专业是完全不着计算机边的非科班,比较有优势的是有两段大厂实习,美团和字节。秋招面了50+场泡池子泡死的:滴滴 快手 去哪儿 小鹏汽车 不知名的一两个小厂其中字节13场 两次3面挂 两次2面挂 一次一面挂其中有2场面试题没写出来,其他的都是全a,但该挂还是挂,第三次三面才面进去字节,秋招加暑期总共面了22次字节,在字节的面评可以出成书了快手面了8场,2次实习的,通过了但没去,一次2面挂 最后一次到录用评估 至今无消息滴滴三面完 没几天挂了 所有技术面找不出2个问题是我回答不上来的,三面还来说我去过字节,应该不会考虑滴滴吧,直接给我干傻了去哪儿一天速通 至今无消息小鹏汽车hr 至今无消息美团2面挂 然后不捞我了,三个志愿全部结束,估计被卡学历了虾皮二面挂 这个是我菜,面试官太牛逼了拼多多二面挂 3道题也全写了 也没问题是回答不出来的 泡一周后挂腾讯面了5次 一次2面挂 三次一面挂,我宣布腾讯是世界上最难进的互联网公司然后还有一些零零散散的中小厂,但是数量比较少,约面大多数都是大厂。整体的战况非常惨烈,面试机会少,就算面过了也需要和各路神仙横向对比,很多次我都是那个被比下去的人,不过这也正常,毕竟谁会放着一个985的硕士不招,反而去招一个双非读化学的小子感觉现在互联网对学历的要求越来越高了,不仅仅要985还要硕士了,双非几乎没啥生存空间了,我感觉未来几年双非想要进大厂开发的难度应该直线上升了,唯一的打法还是从大二刷实习,然后苟个转正,不然要是去秋招大概率是炮灰。而且就我面字节这么多次,已经开始问很多ai的东西了,你一破本科生要是没实习没科研懂什么ai啊,纯纯白给了
不知名牛友_:爸爸
秋招你被哪家公司挂了?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务