Python
- 基础
-
库
- 其他
- argparse命令行参数解析
- asyncio自带异步编程库
- aiofiles异步文件读写库
- beautifulsoup4_HTML_XML解析库
- colorama_在终端输出漂亮的字
- datasets数据集处理
- html2text
- httpx_HTTP请求库
- litellm
- loguru日志库
- numpy科学计算基础库
- pillow图像处理
- pydantic数据验证
- pyyaml
- requests_HTTP请求库
- tenacity重试
- tiktoken计算Token量
- torch机器学习_深度学习框架
- tomli TOML文件解析库
- tomllib 自带TOML文件解析库
- unidiff_文本_文件差异对比
- uvicorn_Web服务器
- langchain
**torch(即 PyTorch)** 是由 **Meta(原 Facebook)** 开发维护的一个开源的 **Python 机器学习与深度学习框架**,用于**构建和训练神经网络、进行张量计算、实现 AI 模型**。
---
## 一、torch 是什么?(简单理解)
- **torch(PyTorch)** 是一个基于 **Python 的科学计算与深度学习库**,核心是支持**动态神经网络、自动求导(Autograd)、GPU 加速**。
- 它让开发者可以**灵活地定义、训练和部署深度学习模型**,是目前全球范围内**最流行、最受科研和工业界欢迎的深度学习框架之一**。
- 很多 AI 研究论文的代码实现、各大公司的深度学习项目(如计算机视觉、自然语言处理、语音识别等)都广泛使用 PyTorch。
---
## 二、torch 解决什么问题?
当你需要做以下事情时,就会用到 torch(PyTorch):
| 任务 | 说明 |
|------|------|
| **构建神经网络** | 定义如卷积神经网络(CNN)、循环神经网络(RNN)、Transformer 等模型 |
| **训练深度学习模型** | 使用 GPU 加速,进行前向传播、反向传播、参数更新 |
| **张量计算(Tensor)** | 类似于 NumPy 的多维数组,但支持 GPU 和自动求导 |
| **自动求导(Autograd)** | 自动计算梯度,用于优化模型参数 |
| **计算机视觉 / NLP / 语音等 AI 任务** | 提供大量工具和预训练模型,如 torchvision、torchaudio、transformers 等 |
| **部署 AI 模型** | 可将训练好的模型导出并部署到服务器、移动端、嵌入式设备等 |
---
## 三、torch 的核心概念
| 概念 | 说明 |
|------|------|
| **Tensor(张量)** | torch 的基础数据结构,类似于 NumPy 的 ndarray,但支持 GPU 加速和自动求导 |
| **Autograd(自动求导)** | 自动计算张量的梯度,用于反向传播和模型优化 |
| **nn.Module** | 构建神经网络模块的基类,用于定义模型结构 |
| **优化器(Optimizer)** | 如 SGD、Adam,用于更新模型参数 |
| **损失函数(Loss Function)** | 用于衡量模型预测与真实值的差距,指导模型优化 |
---
## 四、安装 torch
安装命令根据你的系统(CPU 或 GPU)有所不同,常见安装方式如下:
### 1. 安装 CPU 版本(仅使用 CPU):
```bash
pip install torch
```
### 2. 安装 GPU 版本(支持 CUDA,需要 NVIDIA 显卡):
访问官网获取和你 CUDA 版本对应的安装命令:[https://pytorch.org](https://pytorch.org)
例如,使用 pip 安装支持 CUDA 11.8 的版本:
```bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
```
🔧 如果你不确定自己的 CUDA 版本,可以先安装 CPU 版本使用。
---
## 五、torch 的简单使用示例
### 示例 1:创建一个张量(Tensor)
```python
import torch
# 创建一个 2x3 的张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
print(x)
```
### 示例 2:进行简单的张量运算
```python
y = torch.tensor([[1, 1, 1], [1, 1, 1]])
z = x + y # 张量相加
print(z)
```
### 示例 3:定义一个简单的神经网络
```python
import torch
import torch.nn as nn
# 定义一个简单的全连接网络
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc = nn.Linear(10, 1) # 输入10维,输出1维
def forward(self, x):
return self.fc(x)
model = Net()
print(model)
```
---
## 六、torch 常用子库(生态)
| 子库 | 用途 |
|------|------|
| **torchvision** | 计算机视觉相关工具,包括数据集、模型、图像变换等 |
| **torchaudio** | 音频处理与语音相关工具 |
| **torchtext** | 自然语言处理相关工具(较旧,新项目推荐用 transformers) |
| **torchserve / TorchScript** | 模型部署与导出工具 |
| **PyTorch Lightning** | 高级训练框架,简化训练流程 |
| **Hugging Face Transformers** | 基于 PyTorch 的 NLP 预训练模型库(如 BERT、GPT 等) |
---
## 七、总结(中文)
> **torch(即 PyTorch)是 Python 中最主流的深度学习框架之一,用于张量计算、神经网络构建、模型训练和 AI 研发,支持动态图、自动求导和 GPU 加速,广泛应用于学术研究和工业界。**
>
> 它简单灵活、功能强大,是当前 AI 开发者最常用的工具之一,尤其适合做**深度学习模型开发、科研实验、计算机视觉、自然语言处理等任务**。
---
✅ **简单来说:**
> 如果你要用 Python 做深度学习(比如训练神经网络、做 AI 模型),**torch(PyTorch)就是你最常用、最核心的工具库。**