02-PyTorch框架简介

📅 2026/7/26 5:51:21
02-PyTorch框架简介
PyTorch是一个基于Python的科学计算包PyTorch是一个基于Python语言的深度学习框架它将数据封装成张量Tensor来进行处理。PyTorch提供了灵活且高效的工具用于构建、训练和部署机器学习和深度学习模型。PyTorch广泛应用于学术研究和工业界特别是在计算机视觉、自然语言处理、强化学习等领域。PyTorch安装pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple特点类似于NumPy的张量计算PyTorch中的基本数据结构是张量Tensor它与NumPy中的数组类似但PyTorch的张量具有GPU加速的能力通过CUDA这使得深度学习模型能够高效地在GPU上运行。自动微分系统PyTorch提供了强大的自动微分功能autograd模块能够自动计算模型中每个参数的梯度。自动微分使得梯度计算过程变得简洁和高效并且支持复杂的模型和动态计算图。深度学习库PyTorch提供了一个名为torch.nn的子模块用于构建神经网络。它包括了大量的预构建的层如全连接层、卷积层、循环神经网络层等损失函数如交叉熵、均方误差等以及优化算法如SGD、Adam等。torch.nn.Module是PyTorch中构建神经网络的基础类用户可以通过继承该类来定义自己的神经网络架构。动态计算图PyTorch使用动态计算图机制允许在运行时构建和修改模型结构具有更高的灵活性适合于研究人员进行实验和模型调试。GPU加速CUDA支持PyTorch提供对GPU的良好支持能够在NVIDIA的CUDA设备上高效地进行计算。用户只需要将数据和模型转移到GPU上PyTorch会自动优化计算过程。通过简单的tensor.to(device)方法可以轻松地将模型和数据从CPU转移到GPU或从一个GPU转移到另一个GPU。跨平台支持PyTorch支持在多种硬件平台如CPU、GPU、TPU等上运行并且支持不同操作系统如Linux、Windows、macOS以及分布式计算环境如多GPU、分布式训练。与TensorFlow的比较PyTorch与TensorFlow的区别PyTorch是基于动态图动态计算图的而TensorFlow 1.x是基于静态计算图的TensorFlow 2.x支持动态图。这使得PyTorch在灵活性和调试方面优于TensorFlow尤其是在研究和原型设计中。此外PyTorch的API设计更加贴近Python易于学习和使用。TensorFlow 2.x引入了Eager Execution和PyTorch都支持动态图但PyTorch因其更直观的编程模式和调试支持在学术界和一些工业界应用中更为流行。发展史TorchTorch是最早的Torch框架最初由Ronan Collobert、Clement Farabet等人开发。它是一个科学计算框架提供了多维张量操作和科学计算工具。Torch7Torch7是Torch的一个后续版本引入了Lua编程语言并在深度学习领域取得了一定的成功。遗憾的是随着pytorch的普及Torch便不再维护Torch7也就成为了Torch的最后一个版本。Pytorch 0.1.0在Torch的基础上Facebook人工智能研究院FAIR于2016年发布了PyTorch的第一个版本标志着PyTorch的正式诞生。初始版本的PyTorch主要基于Torch7但引入了更加Pythonic的设计风格使得深度学习模型的定义和调试更加直观和灵活。Pytorch 0.2.0该版本首次引入了动态图机制使得用户能够在构建神经网络时更加灵活。作为Pytorch后期制胜tensorflow的关键机制该版本象征着Pytorch进入了一个新的阶段。Pytorch 1.0.02018年发布了Pytorch的首个稳定版本引入了Eager模式简化了模型的构建和训练过程。Pytorch 2.0Pytorch2.0引入了torch.compile可以支持对训练过程的加速同时引入了TorchDynamo主要替换torch.jit.trace和torch.jit.script。另外在这个版本中编译器性能大幅提升分布式运行方面也做了一定的优化。