Python 深度学习常用包汇总
文章目录
比较常用Pytorch框架,记录一下常用的包,方便重建深度学习环境。如果没有特别提示,均是在Windows下试验的。
更新历史
2021/2/28
2021/3/6
2021/5/22
2022/4/22
2023/8/18
2023/9/25
2024/6/22
清单
框架与库名 | 说明 | 是否需要特殊安装 |
---|---|---|
深度学习 | ||
Pytorch | meta(facebook)开源深度学习框架。 | ✅ |
tensorflow | 谷歌开源深度学习框架。1.x和2.x版本不兼容。 | ✅ |
paddlepaddle | 百度飞桨开源深度学习框架。 | ✅ |
MindSpore | 华为开源深度学习框架。 | ✅ |
transformers | HuggingFace Transformers 可广泛用于自然语言处理 (NLP) 、计算机视觉、音频等各种任务。尤其是它可以用于快速开发基于 transformer 的语言模型。它是大模型时代堪比Pytorch的库。更新快,版本差异大,建议根据依赖说明安装。 | |
vLLM | 一个拥有高吞吐量和内存高效的 LLM 推理和服务引擎。安装需要考虑Python,显卡驱动版本。 | ✅ |
llamacpp | Llama.cpp用高效的 C/C++ 实现的LLM推理框架。可以在CPU上快速推理,提供量化推理。不用安装,下载编译的软件即可使用。注意,这不是Python的库。 | ✅ |
llama-cpp-python | llama.cpp 的 Python 绑定。 | ✅ |
flash_attn | Flash Attention是一种注意力算法,更有效地缩放基于transformer的模型,从而实现更快的训练和推理。 | ✅ |
scikit-learn | 一个功能强大的Python机器学习库,它提供了各种机器学习算法和数据预处理工具,使得数据处理和模型训练变得简单高效。包括分类、回归、聚类、降维算法。 | ✅ |
gensim | 一个挖掘文档语义结构的工具。有Word2vec,doc2vec等算法。3.x和4.x版本差异大。 | |
jieba | 结巴中文分词,最具影响力的中文分词库。 | |
hanlp | 中文分词,最新版是基于bert的分词库,地位仅次于jieba。 | |
nltk | 英文分词,英文数据预处理。 | |
gradio | Gradio是一个用于构建交互式界面的Python库。它可以帮助您快速创建自定义的Web界面,用于展示和测试机器学习模型、自然语言处理模型、计算机视觉模型等。更新快,版本差异大,建议根据依赖说明安装。 | |
numpy | Python中用于科学计算的核心库,它支持多维数组和矩阵运算,以及大量的数学函数库。听说2.x版本有比较多不兼容的改变。 | |
scipy | Scientific Python 针对特定类型的科学计算任务提供了丰富的函数和类。 | |
accelerate | HuggingFace 的 accelerate 库可以实现只需要修改几行代码就可以实现ddp训练,且支持混合精度训练和TPU训练。 | |
bitsandbytes | bitsandbytes是对CUDA自定义函数的轻量级封装,特别是针对8位优化器。用于大模型训练微调。 | ✅ |
sentencepiece | 一个无监督的文本分词器(tokenizer),包括基于频率和BPE算法,常用于Transformer语言模型。 | |
tokenizers | huggingface 提供的文本分词器(tokenizer)。 | |
图像 | ||
opencv-python | 是一个基于BSD许可(开源)发行的跨平台计算机视觉库。使用BGR通道读取图片。 | ✅ |
pillow | 一个非常强大的图像处理库。常与Pytorch绑定使用。使用RGB颜色空间。 | |
matplotlib | 一个可创建静态的、动画的和可交互的可视化图形图像的库。 | |
networkx | 一个用于图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,支持创建简单无向图、有向图和多重图(multigraph)。 | |
seaborn | Seaborn是matplotlib的强大的一个扩展。 | |
wordcloud | 画词云,通常与分词一起使用。 | |
数据处理 | ||
pandas | Pandas是Python中最流行的数据分析和统计库。支持csv,xlsx,parquet表格文件。 | ✅ |
pydantic | 是 python 中用于数据接口定义检查与设置管理的库。可以强制执行类型检查。 | |
PyMuPDF | 处理PDF文件 | |
python-docx | 处理word文件 | |
python-pptx | 处理ppt文件 | |
API与爬虫 | ||
requests | 一个简单而优雅的Python HTTP库,可以发送GET、POST请求。 | |
Flask | 轻量级Web应用框架。可以用于编写web应用和接口。 | |
fastapi | 一个用于构建 API 的现代、快速(高性能)的 web 框架。 | |
openai | OpenAI 发布的访问OpenAI 大模型服务的库。除此之外,很多大模型都支持通过它访问。 | |
selenium | 模拟浏览器运行的库,用于Web应用程序测试的工具 | ✅ |
beautifulsoup4 | Beautiful Soup 是一个用于解析 HTML(网页) 和 XML 文档的 Python 库。 | ✅ |
uvicorn | 一个基于标准 ASGI (Asynchronous Server Gateway Interface) 的高性能 HTTP 服务器。常用于部署fastapi应用。 | |
pyautogui | 一个键盘鼠标自动化库,可以用于爬取数据,执行重复性任务。 | |
其他 | ||
jupyter notebook | 是基于网页的用于交互计算编程的应用程序。常用于数据科学分析。6.x与7.x ui改动大,一些插件不兼容。 | |
tqdm | 进度条 | |
loguru | 简单易用,高性能的日志库 |
原则:能
pip
安装的库,一律pip
安装。
需要特殊安装的库
名称不一致的库
一些库的名称与在代码中导入的名称不一致,这是很烦的。不一致导致很多时候使用开源代码时,对于缺少的库会下意识思考名称是不是一样,浪费时间。
它们不知道知道导入名称就可以安装的乐趣吗???
# sklearn
pip install scikit-learn
# import cv2
pip install opencv-python
# beautifulsoup4
pip install beautifulsoup4 lxml
# 导入使用
from bs4 import BeautifulSoup
Pytorch
Pytorch 是目前世界最受欢迎的深度学习框架,具体安装参考官网:Pytorch install
旧版安装命令地址: Previous PyTorch Versions | PyTorch
需要注意,RTX30系显卡需要 torch1.10.0 以及cu111以上版本
目前一般使用 Pytorch2.x
版本了。
我一般搭配的Python版本是3.10
。
常用版本
# v2.0.1 CUDA 11.8
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
# v2.0.1 CPU only
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cpu
# v2.1.2 CUDA 11.8
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
# v2.1.2 CPU only
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cpu
检查是否支持GPU
import torch
print(torch.cuda.is_available()) # True
tensorflow
tensorflow曾经是最流行的深度学习框架,但后面被Pytorch碾压了。它安装起来有点麻烦,需要注意很多地方。官网:TensorFlow (google.cn)
2.x版本安装
# 安装最新版本
pip install tensorflow
官方推荐的Python、cuda版本,tensorflow install
检查是否支持GPU
import tensorflow as tf
print('GPU',tf.test.is_gpu_available()) # True
print(tf.config.list_physical_devices('GPU')) # 如果gpu存在则显示gpu列表,否则是空列表
1.x版本安装
推荐安装1.15版本
# cpu
pip install tensorflow==1.15
# gpu版
pip install tensorflow-gpu==1.15
# 如果是linux系统,推荐下面安装命令
conda install -c conda-forge tensorflow-gpu==1.15.0
如果是30系列显卡,而且cuda是11.x版本,一般不用安装CUDA链接库了。
如果显卡是RTX20和以下显卡,可能需要手动安装CUDA链接库。方法如下(先检查安装的是否支持GPU再考虑安装cuda链接库):
# 安装cudatoolkit(CUDA)推荐
conda install -c anaconda cudatoolkit #-c代表--channel。 它用于指定搜索包的频道 默认最新版本
or
conda install cudatoolkit=10.0 # 若需指定版本
# 安装cudnn(推荐)
conda install -c anaconda cudnn #若上步指定了版本,这里将做自动匹配~
or
conda install cudnn=7.4 # 指定版本
官方推荐版本
检查是否支持GPU
import tensorflow as tf
print(tf.test.gpu_device_name()) # /device:GPU:0
paddlepaddle
paddlepaddle 是国内最早的深度学习框架,具体安装参考官网:paddlepaddle install。
如果项目是2022年之前的旧代码,推荐使用2.4.2以下版本,因为我发现新版本2.5.x有些api更改了。具体自行尝试。
# Linux CUDA 11.2
python3 -m pip install paddlepaddle-gpu==2.4.2.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
# Windows CUDA 11.2
python -m pip install paddlepaddle-gpu==2.4.2.post112 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
MindSpore
MindSpore是目前国内发展很快的深度学习框架,具体安装参考官网:MindSpore install。
Pandas
pandas 可以通过 pip 直接安装,但直接安装不能正常读取csv、xlsx等文件,需要依赖库。
openpyxl
,xlrd
引擎解析Excel文件。Openpyxl
专门设计用于读取和写入xlsx文件。Xlrd
主要用于读取较早的xls文件。
pyarrow
用于解析parquet
文件,Parquet文件是一种高效存储(压缩)和处理大数据的文件格式,不能直接查看。
pip install pandas pyarrow openpyxl xlrd
vLLM
vLLM目前只支持Linux系统,不支持Windows系统。
默认情况下,vLLM 只会安装支持 CUDA 12.1 的版本
pip install vllm
安装支持 CUDA 11.8 版本的步骤
【1】安装xformers依赖库,xformers也是只支持Linux系统。
默认通过pip安装也是只安装支持cuda 12.x的版本。因此需要手动找到支持cuda 11.x的编译文件安装。
访问 https://anaconda.org/xformers/xformers/files, 找到对应的版本下载
# 1.1 下载对应版本,(可以手动在网页下载)
wget https://anaconda.org/xformers/xformers/0.0.23.post1/download/linux-64/xformers-0.0.23.post1-py310_cu11.8.0_pyt2.1.2.tar.bz2
# 1.2 卸载旧版本(如果没有安装不用卸载)
pip uninstall xformers
# 1.3 安装新版本
conda install xformers-0.0.23.post1-py310_cu11.8.0_pyt2.1.2.tar.bz2
# 1.4 验证
python -m xformers.info
【2】去github官方仓库下载vllm:https://github.com/vllm-project/vllm/releases
注意对应支持的Python、cuda、系统版本。
pip install xxx.whl
llamacpp
去官方 github 仓库下载编译好的软件:https://github.com/ggerganov/llama.cpp/releases
win 后面的
avx
是指令集名称,一般来说,最新的CPU都支持avx
和avx2
指令集,可以去百度一下自己CPU支持的指令集
llama-cpp-python
默认是下载源码编译,但这样容易编译错误,因此可以通过下载官方编译的whl文件安装。
github地址:https://github.com/abetlen/llama-cpp-python/releases
下载最新版本即可
pip install xxx.whl
flash_attn
按照已有环境中Python、PyTorch和CUDA的版本精确下载特定的whl文件安装是最佳方式。
whl下载需要到官方github下载:https://github.com/Dao-AILab/flash-attention/releases
有两种版本,abiFALSE
和abiTRUE
,这和Pytorch的编译版本有关,一般选择abiFALSE。可以通过下面代码输出选择:
import torch
# Fasle对应abiFALSE,True对应abiTRUE
a = torch._C._GLIBCXX_USE_CXX11_ABI
print(a)
安装
pip install xxx.whl
bitsandbytes
和flash_attn类似,需要考虑系统版本,有的旧版需要考虑cuda。一般安装最新版本。
整体要求:
Python >= 3.8
CUDA >= 11.0
whl下载需要到官方github下载:https://github.com/TimDettmers/bitsandbytes/releases
安装
pip install xxx.whl
selenium
selenium是模拟浏览器运行的库,它是一个用于Web应用程序测试的工具。
它可以直接pip安装,但需要搭配浏览器驱动。
pip install selenium
chrome驱动下载,首先查看chrome浏览器版本
下载,注意对应的版本。
114以下版本地址:Chrome驱动网页
114以上版本地址:Chrome for Testing availability (googlechromelabs.github.io)
beautifulsoup4
用于解析HTML和XML文档的库,它提供了一种方便的方式来提取网页中的数据。
它一般搭配lxml HTML解析器使用。
它导入的名称和安装名称不一致。
# 安装
pip install beautifulsoup4 lxml
# 导入使用
from bs4 import BeautifulSoup
print(BeautifulSoup.__version__)