前言:
此刻同学们对“python列表切片赋值”大概比较关心,各位老铁们都想要知道一些“python列表切片赋值”的相关文章。那么小编同时在网上汇集了一些关于“python列表切片赋值””的相关文章,希望你们能喜欢,你们一起来了解一下吧!切片
与python的数组操作类似,pytorch的张量也支持切片操作。
构建一个4行5列的二维数组。
import torchx = torch.arange(20).reshape(4,5)
通过切片取出前2行的数据。
x[0:2]
也可以通过切片操作给张量赋值。
给第一行的数据赋值为0
x[0:1,:]=0
原地赋值
张量在运算的过程中会申请新的内存地址,即使是同一个张量。
先来看个例子。
先构建2个张量x,y
x=torch.tensor([1])y=torch.tensor([2])
使用函数查看张量x的内存地址为:2182261278336
将x与y相加,重新赋值给x,再查看下x的内存地址:2182257581408
可以看到前后2次查询的内存地址是不一样的,在运算过程中申请了新的内存空间,这会导致运算开销变大。
可以使用切片操作,使用原有的内存空间。
x=torch.tensor([1])y=torch.tensor([2])id(x)x[:]=x+yid(x)
再次查看运算前后的内存地址,这次就一样了,说明没有申请新的内存空间。
除了使用切片减少内存空间也可以使用+=操作。
x=torch.tensor([1])y=torch.tensor([2])id(x)x+=yid(x)
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python列表切片赋值