PyTorch
PyTorch
一、简介
PyTorch 是一个开源的深度学习框架。它以动态计算图著称,这种特性带来了开发的灵活性与直观性。具有 Pythonic 风格的 API,易用性强,加上丰富的文档和活跃的社区支持,便于开发者上手。PyTorch 能高效利用 GPU 加速计算,还支持分布式训练。其应用十分广泛,在计算机视觉如图像分类、目标检测,以及自然语言处理如文本分类、机器翻译等众多任务中都发挥着重要作用。
二、安装前准备
2.1 Anaconda
建议通过 Anaconda 进行安装,Anaconda 会自动处理 PyTorch 安装所需的所有依赖关系,包括必要的 DLL 文件和 Visual C++ Redistributable 包:Anaconda
2.2 安装命令
访问 PyTorch 的官方网站 PyTorch Get Started ,了解安装命令。
这里主要注意一下"Compute Platform"这一栏,指的是 CUDA 的版本,CUDA 的版本查看方式在四、安装GPU版(二选一)中会介绍,如果没有显卡建议 不装 安装 CPU 版。
三、安装 CPU 版(二选一)
打开 Anaconda 终端,创建一个虚拟环境:
conda create -n env_pytorch python=3.11
等待虚拟环境创建完成后,激活虚拟环境:
conda activate env_pytorch
激活后可以看到虚拟环境的命令提示符前缀:
执行官网给出的命令,使用 Conda 安装:
验证安装成功:
pip show torch
python -c "import torch; print(torch.__version__)"
四、安装 GPU 版(二选一)
4.1 安装 CUDA(可选)
CUDA(CUDA compute unified device architecture)是 NVIDIA 推出的一种并行计算平台和编程模型,用于在 NVIDIA 的 GPU 上执行高性能计算任务。
查看 CUDA 显卡驱动版本,打开 cmd 终端,输入命令:
nvidia-smi
可以查看到 CUDA 显卡驱动版本:
从官网的安装命令可以看到推荐的 CUDA 版本是 11.8,由于我的显卡比较落后,只能选择使用 CPU 安装方式。
如果驱动版本支持,从官网下载对应的 CUDA 版本:CUDA Toolkit Archive | NVIDIA Developer
4.2 安装 PyTorch
打开 Anaconda 终端,创建一个虚拟环境:
conda create -n env_pytorch python=3.11
等待虚拟环境创建完成后,激活虚拟环境:
conda activate env_pytorch
激活后可以看到虚拟环境的命令提示符前缀:
执行官网给出的命令,使用 Conda 安装,选择 CUDA 版本为 11.8,复制安装命令到命令行执行。
等待安装完成后,验证安装成功:
pip show torch
python -c "import torch; print(torch.__version__)"
附 问题清单
1. 导入 PyTorch 时报错 OSError: [WinError 126] 找不到指定的模块:
C:\Users\31225>python -c "import torch; print(torch.__version__)"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\31225\AppData\Roaming\Python\Python311\site-packages\torch\__init__.py", line 141, in <module>
raise err
OSError: [WinError 126] 找不到指定的模块。 Error loading "C:\Users\31225\AppData\Roaming\Python\Python311\site-packages\torch\lib\fbgemm.dll" or one of its dependencies.
C:\Users\31225>
解决方案:
- 确认 PyTorch 是否安装:
- 确保你的环境变量
PATH
包含了 Python 的 Scripts 目录和 PyTorch 的安装目录。这样可以确保系统能找到 PyTorch 相关的 DLL 文件。 -
fbgemm.dll
是一个动态链接库文件,它是 Facebook 开源的高性能数学库 FBGEMM 的一部分。FBGEMM 主要用于在 CPU 上进行矩阵乘法和卷积计算,特别优化了低精度数据类型的运算,以实现与单精度(FP32)相当的精度,同时提供更高的效率。这个库被用于 PyTorch 框架中,作为量化操作的后端,以提高在 x86 机器上运行量化推理的性能。 - 一般原因是系统可能缺少必要的 C++ 运行时库。