第2章:环境搭建与工具链
说实话,每次带新人入门,我最怕的就是环境搭建这一步。明明代码逻辑都懂,结果卡在装包上,一卡就是半天。我自己也踩过不少坑,所以这一章,我带你一步步把环境整利索。
2.1 Anaconda虚拟环境配置
为什么要用虚拟环境?说白了,就是怕项目之间打架。你想想看,项目A要用PyTorch 1.8,项目B要用2.0,要是装在一个环境里,迟早出问题。
我个人习惯用Anaconda来管理环境。安装过程就不啰嗦了,官网下载安装包,一路下一步就行。装完之后,打开终端(Windows用户用Anaconda Prompt),我们来创建第一个虚拟环境:
conda create -n vehicle_detection python=3.8
这里我指定了Python 3.8。为什么是3.8?嗯,我在项目中遇到过,有些老一点的库对3.9以上支持不太好。3.8是个稳妥的选择。
激活环境:
conda activate vehicle_detection
看到命令行前面多了个 (vehicle_detection) 就对了。以后每次做这个项目,记得先激活这个环境。
environment.yml 文件,把依赖都写进去。这样换电脑或者分享给同事,一行命令就能复现环境。
2.2 PyTorch / CUDA 安装
这是最让人头疼的一步。为什么?因为PyTorch版本和CUDA版本必须匹配。我曾经因为版本不对,折腾了一整个下午。
先看看你的显卡支持什么版本的CUDA。打开终端,输入:
nvidia-smi
你会看到类似这样的输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.05 Driver Version: 525.85.05 CUDA Version: 12.0 |
+-----------------------------------------------------------------------------+
注意看右上角的CUDA Version。这个版本号决定了你能装什么版本的PyTorch。
然后去PyTorch官网(pytorch.org),找到对应的安装命令。比如CUDA 12.0,可以装:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
conda install 装PyTorch。我试过,有时候会装成CPU版本。用pip更靠谱。
装完之后验证一下:
python -c "import torch; print(torch.cuda.is_available())"
如果输出 True,恭喜你,GPU可以用了。如果是 False,别慌,检查一下CUDA版本和PyTorch版本是否匹配。
2.3 OpenCV 与必要的 Python 库安装
OpenCV是咱们做视觉的必备工具。安装很简单:
pip install opencv-python opencv-contrib-python
这里我装了两个包。 opencv-python 是基础版, opencv-contrib-python 包含了额外模块,比如SIFT、SURF这些特征提取算法。虽然现在深度学习用得多了,但传统方法在某些场景下还是很有用的。
其他常用的库,我列个清单:
| 库名 | 用途 | 安装命令 |
|---|---|---|
| numpy | 数值计算 | pip install numpy |
| matplotlib | 可视化 | pip install matplotlib |
| scikit-learn | 机器学习工具 | pip install scikit-learn |
| pillow | 图像处理 | pip install pillow |
| tqdm | 进度条显示 | pip install tqdm |
| tensorboard | 训练可视化 | pip install tensorboard |
你可以一次性装完:
pip install numpy matplotlib scikit-learn pillow tqdm tensorboard
ImportError: libGL.so.1: cannot open shared object file 的错误。这是因为缺少OpenCV的依赖库。Ubuntu用户执行 sudo apt-get install libgl1-mesa-glx 就能解决。
2.4 IDE 推荐(VS Code / PyCharm)
工欲善其事,必先利其器。IDE选对了,能省不少事。
VS Code:轻量、免费、插件丰富。我个人比较喜欢用它做深度学习项目。推荐装这几个插件:
- Python(微软官方)
- Jupyter(可以在VS Code里跑notebook)
- GitLens(看代码历史很方便)
- Remote SSH(连服务器开发)
PyCharm:功能更全,但比较重。如果你做大型项目,PyCharm的代码补全和重构功能确实强大。社区版免费,够用了。
怎么选?我的建议是:
- 新手用PyCharm,开箱即用,不用折腾配置
- 老手用VS Code,轻便灵活,想怎么配就怎么配
不管用哪个,记得把Python解释器指向我们刚才创建的虚拟环境。在VS Code里按 Ctrl+Shift+P,搜索 Python: Select Interpreter,选 vehicle_detection 那个。PyCharm的话,在Settings里找到Project Interpreter,同样选虚拟环境。
2.5 验证环境
最后,写个简单的脚本验证一下所有东西都装好了:
import torch
import cv2
import numpy as np
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA可用: {torch.cuda.is_available()}")
print(f"OpenCV版本: {cv2.__version__}")
print(f"NumPy版本: {np.__version__}")
# 测试一下GPU
if torch.cuda.is_available():
x = torch.randn(3, 3).cuda()
print("GPU计算测试通过")
else:
print("GPU不可用,将使用CPU")
跑一下,如果没报错,说明环境搭好了。嗯,这一步虽然简单,但很重要。我见过太多人装完库就直接开干,结果跑模型时才发现某个依赖没装,又回头排查,浪费时间。
环境搭好了,下一章咱们就开始动手写代码了。准备好了吗?