Pytorch基本语法

学习内容参考bilibili视频:https://www.bilibili.com/video/BV17y4y1m737?p=9&vd_source=e3119ad0490e9417e487c2ba62c84750

一、认识Pytorch

  1. Pytorch的基本元素操作
  • 矩阵的初始化:
torch.empty()
torch.rand(n,m)
torch.zeros(n,m,dtype=torch.long)
  • 其他若干操作:
x.new_ones(n,m,dtype=torch.double)
torch.randn_like(x, dtype=torch.float)
x.size()	# 可以直接以元组的形式赋值给变量,如二维a,b = x.size()
  1. Pytorch的基本运算操作
  • 加法操作
x+y
torch.add(x,y)
torch.add(x,y,out=result)
y.add_(x)	# 就地赋值
  • 其他若干操作
x.view()	#注意变换后总数不变
x.item()	#取为python的值
  1. Torch Tensor和Numpy Array之间的相互转换
  • 将Torch Tensor 转换为Numpy Array:
b = a.numpy()	# a,b 共享同一内存
  • 将Numpy Array转换为Torch Tensor:
b = torch.form_numpy(a)		# a,b 共享同一内存
  1. 将任意的Tensors可以用.to()方法来将其移动到任意设备上
x=x.to(device)

二、Pytorch中的autograd

  1. 学习了torch.Tensor类的相关概念
  • torch.Tensor是整个package中的核心类,如果将属性.requires_grad设置为True,它将追踪在这个类上定义的所有操作.当代码要进行反向传播的时候,直接调用.backward()就可以自动计算所有的梯度.在这个Tensor上的所有梯度将被累加进属性.grad中.
  • 执行.detach()命令,可以将该Tensor从计算图中撤下,在未来的回溯计算中不会再计算该Tensor.
  • 采用代码块的方式也可以终止对计算图的回溯:
with torch.no_grad():
  1. Tensor的若干操作:
torch.ones(n, n, requires_grad=True)
x.grad_fn	#上一步运算类型
x.requires_grad_(True)	# 就地改变requires_grad属性
  1. 关于Gradients的属性:
  • x.grad # 累计梯度
  • 可以通过.detach()获得一个新的Tensor,拥有相同的内容但不需要自动求导.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一个用于科学计算的开源机器学习库。以下是一些PyTorch的基础语法: 1. 创建张量: 通过torch.tensor()函数创建张量,可以指定张量的形状和数据类型。例如,torch.tensor([2.,3.2])创建了一个形状为的浮点张量。torch.Tensor()函数也可以用于创建张量,可以指定形状作为参数。例如,torch.Tensor(2,3)创建了一个形状为[2,3]的张量。默认情况下,PyTorch的张量类型是torch.FloatTensor。 2. 改变默认类型: 使用torch.set_default_tensor_type()函数可以改变默认张量类型。例如,torch.set_default_tensor_type(torch.DoubleTensor)可以将默认类型改为torch.DoubleTensor。 3. 初始化张量: 使用torch.rand()函数可以创建一个具有随机分布的张量。例如,a1=torch.rand(4,3,16,32)创建了一个形状为[4,3,16,32]的张量。 4. 张量的拼接: 使用torch.cat()函数可以将两个张量沿指定维度拼接在一起。例如,torch.cat([a1,a2], dim=2)可以将a1和a2沿第2个维度拼接在一起,得到形状为[4,3,32,32]的张量。另外,使用torch.stack()函数也可以实现拼接,不同之处在于它会额外创建一个新的维度。例如,torch.stack([a1,a2], dim=2)得到形状为[4,3,2,16,32]的张量。 5. 张量的分割: 使用torch.split()函数可以将一个张量沿指定维度分割成多个子张量。例如,torch.split(b, 2)可以将长度为2的张量b分割成两个子张量。 这些是PyTorch的一些基础语法,可以帮助你开始使用PyTorch进行科学计算和机器学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值