PyTorch 最基础知识

作者: 董汇标MINUS | 来源:发表于2019-10-27 16:29 被阅读0次

Pytorch背景知识其实挺庞大的,可以从它主业doc介绍就能看出来,每一个函数参数非常的多。以后如果精力允许,可以满满研究明白一个写一个。下边是针对最基础的一些内容的特别精要的一些整理。

官网:
使用方:facebook twitter nvidia

优点:GPU运算、tensor可代替numpy、构建自动求导神经网络、python优先、命令式体验、快速轻巧

tensor:基本单元,一种张量

常用的形式(点击查看官网内的详细划分)

  • torch.floattensor
  • torch.longtensor

学习内容点:

  • pytorch的tensor 于numpy 的tensor相互转换

    • 需要注意 GPU 上的 Tensor 不能直接转换为 NumPy ndarray,需要使用.cpu()先将 GPU 上的 Tensor 转到 CPU 上
    • 注意左边变量名与右边操作名的区别
    • 可以放在不同的GPU的方法
    • 从GPU换回CPU的方法,尤其用numpy时要转到CPU
  • 为啥要从torch转到numpy呢?因为torch数学运算方式少于np;numpy计算能力更牛逼一些;

  • tensor 操作分为两种,一种是数学运算,一种是高级操作

    • x = torch.ones(2, 2)
    • x = torch.ones(4, 4).float()
    • x[1:3, 1:3] = 2 #换元素
    • z = torch.add(x, y) 或z=x+y
    • x = torch.randn(4, 3)
    • sum_x = torch.sum(x, dim=1) # 沿着行对 x 求和
    • x = x.squeeze(0) # 减少第一维
    • x = torch.randn(3, 4, 5)
    • x = x.permute(1, 0, 2)
    • x.size()
    • x.shape
    • x = x.view(-1, 5) # 变化纬度
    • max_value, max_idx = torch.max(x, dim=1) #沿着行
    • sum_x = torch.sum(x, dim=1) # 沿着行
    • print(x,x.type())
  • Variable

    • from torch.autograd import Variable #变量引入
    • x = Variable(x_tensor, requires_grad=True) # 如何包起来
    • 求 x 和 y 的梯度
      • x = Variable(x_tensor, requires_grad=True)
      • z=(x+2)**2
      • z.backward()
      • print(x.grad)
  • 静态图动态图(可见网盘朱庇特笔记)

    • 静态图先定义计算图(模型)不断使用这个模型,每次使用不需要重新定义
      • debug难
      • 运行快
    • 动态图每次构建生成模型
      • debug方便
      • 运行慢

在深度学习方面,有着很多的计算推导过程,如果你是大学生或者刚刚考研结束的朋友,这些数学问题不是问题。但是如果长期不用已经遗忘,但又想明白其背后的数学理论依据,可以先查看一下下边这三个链接。


创作不易,非授权不得转载,转载请注明出处
如果您觉的文章有用,别忘了在文末点赞~
作者:MINUS
公众号:SUMER
感谢阅读

相关文章

网友评论

    本文标题:PyTorch 最基础知识

    本文链接:https://www.haomeiwen.com/subject/kpfmvctx.html