pytorch用来干嘛的
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序,它是一个基于Python的可续计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算(如NumPy);2、包含自动求导系统的深度神经网络。
一、pytorch有什么用
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。
2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:
1、具有强大的GPU加速的张量计算(如NumPy)。
2、包含自动求导系统的深度神经网络。
PyTorch使用Python作为开发语言,允许开发人员访问广泛的Python生态圈库和软件。 而在PyTorch开发中,数据处理型与数据计算包Numpy的矩阵型、代码样式型机器学习包scikit-learn相似,便于广大机器学习者进入深度学习这一新领域。
目前,许多开源框架(如TensorFlow、Caffe2、CNTK和Theano )采用静态计算图,而PyTorch采用动态计算图。 在静态计算图表中,必须先定义网络模型,然后运行,一次定义并运行多次。 动态计算图表可以在运行中定义,可以在运行时构建,多次构建并运行。
静态图的实现代码是冗馀的,不直观的。 动态图的实现简洁优雅,直观。 动态计算图表的另一个显著优点是易于调试,并且可以随时查看变量值。 由于模型可能会变得复杂,因此如果可以直观地看到变量值,就可以快速构建模型。 PyTorch的API设计简单优雅,使用方便。
二、pytorch的运行环境
已兼容Windows(CUDA,CPU)、MacOS(CPU)、Linux(CUDA,ROCm,CPU) 。
基础环境:一台PC设备、一张高性能NVIDIA显卡(可选)、Ubuntu系统。
三、pytorch的优点
- PyTorch是相当简洁且高效快速的框架
- 设计追求最少的封装
- 设计符合人类思维,它让用户尽可能地专注于实现自己的想法
- 与google的Tensorflow类似,FAIR的支持足以确保PyTorch获得持续的开发更新
- PyTorch作者亲自维护的论坛 供用户交流和求教问题
- 入门简单
拓展阅读
PyTorch 库深度学习流程
- 数据加载和处理
任何深度学习项目的第一步都是处理数据加载和处理。PyTorch 通过torch.utils.data提供相同的实用程序。该模块中的两个重要类是Dataset和DataLoader。如果我们可以访问多台机器或 GPU,我们也可以使用torch.nn.DataParallel和torch.distributed。
- 构建神经网络
torch.nn模块用于创建神经网络。它提供了所有常见的神经网络层,如全连接层、卷积层、激活和损失函数等。一旦创建了网络架构并且准备好将数据馈送到网络,我们就需要更新权重和偏差的,以便网络开始学习。这些实用程序在torch.optim模块中提供。类似地,对于反向传递期间所需的自动微分,我们使用torch.autograd模块
- 模型推断和兼容性
模型经过训练后,可用于预测测试,甚至测试新数据集的输出。这个过程被称为模型推理。
PyTorch 还提供TorchScript,可用于独立于 Python 运行时运行模型。这可以被认为是一个虚拟机,其指令主要针对张量。还可以将使用 PyTorch 训练的模型转换为 ONNX 等格式,这样就可以在其他 DL 框架(例如 MXNet、CNTK、Caffe2)中使用这些模型。