机器学习Python生态中3个重要的库
·
1. Celery —— 分布式任务队列
-
定位:异步任务处理 / 分布式任务调度框架
-
作用:把耗时的任务(发邮件、处理图片、跑模型推理等)从主程序里剥离出来,交给后台的 worker 异步执行,避免阻塞主流程
-
典型场景:
-
Web 应用(Django/Flask)中处理耗时操作
-
定时任务(配合 celery beat)
-
需要横向扩展的任务分发
-
-
核心概念:Broker(如 Redis/RabbitMQ)、Worker、Task、Result Backend
@app.task
def send_email(to):
...
send_email.delay("a@b.com") # 异步丢给 worker
2. scikit-learn (sklearn) —— 经典机器学习库
-
定位:传统机器学习算法库
-
作用:提供分类、回归、聚类、降维、模型评估、特征工程等一整套工具
-
特点:API 统一(
fit/predict/transform),基于 NumPy/SciPy,适合中小规模数据和传统算法 -
典型算法:线性回归、SVM、随机森林、KMeans、PCA、GBDT 等
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier().fit(X, y)
clf.predict(X_test)
注意:sklearn 不擅长深度学习,神经网络部分已被官方标记为"不再重点发展"。
3. PyTorch (torch) —— 深度学习框架
-
定位:深度学习 / 神经网络框架
-
作用:构建和训练神经网络,支持自动求导、GPU 加速、动态计算图
-
典型场景:图像识别、NLP、大模型训练与微调、强化学习等
-
生态:
torchvision(视觉)、torchaudio(音频)、transformers(预训练模型)等 -
特点:研究友好、调试直观,目前是学术界和工业界主流
import torch
x = torch.randn(3, requires_grad=True)
y = (x ** 2).sum()
y.backward() # 自动求导
一句话对比
| 库 | 领域 | 核心用途 |
|---|---|---|
| Celery | 工程/后端 | 异步任务、分布式调度 |
| sklearn | 机器学习 | 传统 ML 算法(非深度学习) |
| torch | 深度学习 | 神经网络训练与推理 |
它们经常一起出现:比如用 Celery 把 sklearn/torch 的模型推理任务异步化,避免接口超时。
更多推荐

所有评论(0)