Pytorch--动手学深度学习--数据操作(tensor的创建、操作、算数运算、关系运算、类型转换、索引、节省内存)

tensor的创建

  1. list或ndarray–》tensor:torch.tensor(list_or_array)
  2. 范围等距创建:torch.arange(start,end,step)
  3. 全1创建:torch.ones((1,2,3))
  4. 全0创建:torch.zeros((1,2,3))
  5. 随机数创建:torch.randn(1,2,3) 注意是0均值1标准差的高斯分布
  6. 创建标量:a = torch.randn(size=())

tensor的操作

  1. tensor拼接:torch.cat((x,y),dim=0) 第一维度上拼接,行拼接
  2. tensor的重构:torch.reshape(3,4,2) 从最后一维进行重塑
  3. tensor的结构信息:x.shape

算数运算

x=torch.tensor(list1)
y=torch.tensor(list2)
x+y
x-y
x*y
x/y
x**y

都是x与y中元素级别的一一运算
广播机制–解决x和y的维度不一致的现象
x=torch.tensor([[1,2],[3,4]])
y=torch.tensor([[1,2],[3,4],[5,6],[7,8]])
此时的x与y的运算是不可行的,但是通过广播机制,将x的形状同方向上复制得到(4,2)的形状,再与y进行算数运算

关系运算

x==y x>y x>=y x<y x<=y x!=y

元素级别的一一对比

类型转换

#实现array和tensor转换
x=torch.arange(12)
A=x.numpy()
B=torch.tensor(A)
#实现标量tensor的值转化
x=torch.tensor([1])
x.item()
float(x)
int(x)

索引

x[1,2]
x[:,2]
x[-1]#得到最后一个元素

节省内存

X=X+Y的操作最终是将X的指针指向了X+Y新开创的内存空间,而不是X原始地址
需要保持原始地址不被改变:

X[:]=Y+Z

X+=Y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值