PyTorch(笔记)

1、什么是PyTorch

        1、一个开源的Python机器学习库。

        2、Torch使用了语言Lua作为接口。Lua是简洁高效的。

        3、(考虑到python的领先地位,以及其生态完整性和接口易用性,几乎任何框架都不可避免要提供Python接口

       4、 PyTorch不是简单的封装Torch提供的Python接口,而是对Torch之上的所有模块进行了重构,并新增了先进的自动求导系统,成为当下最流行的动态图框架之一。

        5、PyTorch的热度已超越了其他三个框架(Caffe,MXNet,Theano)

2、特点

        1、PyTorch可以看作是加入了GPU支持的NumPy

        2、PyTorch通过一种反向自动求导的技术,可以让用户零延迟地任意改变神经网络的行为。目前为止它的实现是最快的。

        3、(TensorFlow和Caffe都是命令式的编程语言,而且是静态的。即首选必须建构一个神经  网络,然后一次又一次使用同样的结构。如果想要改变网络的结构,就必须从头开始)

        4、PyTorch的设计思路是线性、直观且易于使用的

        5、当计算机执行代码出现bug的时候,可以轻松、快捷的找到出错的代码。不会人用户在调试(Debug)的时候因为错误的指向或者异步和不透明的引擎浪费太多时间

        6、相对于TensorFlow来说,PyTorch代码更加简洁、直观,源代码更友好、容易看懂

3、概述

        PyTorch的最大优势是建立的网络是动态的,可以非常容易地输出每一步的调试结果。

1、PyTorch图

        如下图:PyTorch的图是随着代码的运行逐步建立起来的,也就是说不需要一开始就定义好全部的网络结构,而是可以随着编码的进行来一点一点地调试。

相比于TensorFlow和Caffe的静态图而言,这种设计更加贴近大多数人的编码习惯

PyTorch的代码示例如下:

import torch.nn as nn

import torch.nn.functional as F

class LeNet(nn.Module):

        def _init_(self):

                super(LeNet,self)._init_()

                self.conv1 = nn.Conv2d(3,6,5)

                self.conv2= nn.Conv2d(6,16,5)

                self.fc1 = nn.Linear(16*5*5,120)

                self.fc2 = nn.Linear(120,84)

                self.fc3 = nn.Linear(84,10)

        def forward(self,x):

                x=F.max_pool2d(F.relu(self.conv1(x)),2)

                x=F.max_pool2d(F.relu(self.conv2(x)),2)

                x=x.view(-1,16*5*5)

                x=F.relu(self,fc1(x))

                x=F.relu(self,fc2(x))

                x=self.fc3(x)

                return x

相比于TensorFlow和Caffe而言,PyTorch可读性非常高。网络各层的定义与传播方法一目了然,甚至不需要过多文档与注释,单凭代码就可以很容易理解其功能。

    

4、PyTorch生态

PyTorch拥有一个强大且不断扩展的生态系统,它为开发者提供了丰富的工具和库,特别是在深度学习领域的应用中。

1、重要组成部分

        (1)PyTorch Lightning:这是一个基于PyTorch的高级计算框架,它简化了深度学习模型的训练流程,使得开发者可以更加专注于模型的设计和实验

        (2)Detectron2:由Facebook AI推出的下一代目标检测框架,专门用于处理计算机视觉任  务

        (3)Transformers:这是一个基于PyTorch的自然语言处理(SOTA)模型库,提供了一系列预训练模型和算法,用于处理NLP任务

        (4)PyTorch Geometric:一个专门用于图神经网络的深度学习扩展库,集成了常见的图神  经网络和数据集

        (5)PyTorch3D:结合了深度学习与3D数据的框架,适用于3D相关的深度学习应用。

        (6)Skorch:结合了scikit-learn和PyTorch的机器学习库,旨在提供一个统一接口来使用这  两个库的功能。

        (7)TorchVision和TorchVideo:这些工具包分别用于图片和视频处理,在计算机视觉领域  有着广泛的应用。

        (8)torchtext:针对自然语言处理任务,torchtext提供了数据处理的工具,帮助开发者更有效地处理文本数据。

PyTorch的生态系统不仅包括了丰富的工具和库,还有着广泛的社区支持和云服务,这些都极大地促进了深度学习技术的发展和应用。

5、优势

        1、灵活性高:PyTorch提供了动态图的特性,这意味着在构建模型时可以灵活地更改模型结构,这种灵活性特别适合于研究型项目和实验性开发。动态计算图使得开发者在编写代码时能够即时看到结果,这对于调试和实验非常有帮助。

        2、快速原型设计:PyTorch的易用性灵活性使其成为快速原型设计和小型项目的理想选择。研究者可以快速实现想法并进行测试。

        3、易用性好:PyTorch的API设计简洁直观,对于初学者和经验丰富的开发者都非常友好。这使得学习和使用PyTorch变得更加容易。

        4、社区支持强大:由Facebook的开发者维护,PyTorch拥有一个活跃的社区和强大的支持。这保证了框架的持续更新和改进,同时也意味着用户可以获得丰富的学习资源和帮助。

        5、硬件加速:随着神经网络模型变得越来越复杂,PyTorch也能够利用有能力的硬件来加速模型的训练和推理过程

总的来说,PyTorch以其高度的灵活性、快速原型设计能力、易用性以及强大的社区支持,在学术界和工业界都获得了广泛的应用和认可。

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值