alex_bn_lee

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【673】PyTorch —— 基础知识

Docs » PyTorch之60min入门教程 » PyTorch 入门

Tensors(张量)

  • torch.empty():不初始化的构造

  • torch.rand():随机初始化的矩阵

  • torch.zeros():初始化矩阵全为 0

  • torch.tensor():直接通过数据构造

  • x.new_ones():基于已有tensor构造

  • torch.randn_like():基于已有tensor构造

  • x.size():获取维度信息

  • torch.view():改变tensor的大小或者形状

  • x.item():对于一个元素的tensor得到具体的value

  • x + y:直接相加

  • torch.add(x, y):直接相加

  • y.add_(x):直接相加,并赋值给 y

    • 注意 任何使张量会发生变化的操作都有一个前缀 '_'。例如:x.copy_(y), x.t_()

 

Autograd(自动微分)

  • torch.Tensor 是包的核心类。如果将其属性 .requires_grad 设置为 True,则会开始跟踪针对 tensor 的所有操作。完成计算后,您可以调用 .backward() 来自动计算所有梯度。该张量的梯度将累积到 .grad 属性中。

  • 要停止 tensor 历史记录的跟踪,您可以调用 .detach(),它将其与计算历史记录分离,并防止将来的计算被跟踪。

  • 要停止跟踪历史记录(和使用内存),您还可以将代码块使用 with torch.no_grad(): 包装起来。在评估模型时,这是特别有用,因为模型在训练阶段具有 requires_grad = True 的可训练参数有利于调参,但在评估阶段我们不需要梯度。

  • 还有一个类对于 autograd 实现非常重要那就是 Function。Tensor 和 Function 互相连接并构建一个非循环图,它保存整个完整的计算过程的历史信息。每个张量都有一个 .grad_fn 属性保存着创建了张量的 Function 的引用,(如果用户自己创建张量,则grad_fn 是 None )。

  • 如果你想计算导数,你可以调用 Tensor.backward()。如果 Tensor 是标量(即它包含一个元素数据),则不需要指定任何参数backward(),但是如果它有更多元素,则需要指定一个gradient 参数来指定张量的形状。

  • .requires_grad:用来设置是否跟踪对应 tensor 的所有梯度

  • .backward():用来自动计算梯度,对于最后是一个数的,可以不用参数,如果最后是向量的话,需要添加一个向量的比例值
    参考:pytorch中backward()函数详解

  • .grad_fn:属性保存着创建了张量的 Function 的引用

  • .grad:张量的梯度将累积到 .grad 属性中

 

PyTorch 神经网络

 

posted on   McDelfino  阅读(134)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-12-09 【502】gensim实现Word2Vec
点击右上角即可分享
微信分享提示