2、环境搭建与工具链:Python环境配置、Anaconda与虚拟环境、PyTorch/TensorFlow安装、CUDA与GPU环境验证
说实话,环境搭建这事儿,看着简单,但坑是真不少。我带过不少新人,十有八九第一周都在跟各种报错死磕。我自己刚入行那会儿,也曾在CUDA版本不匹配的问题上折腾了两天。所以这一章,咱们就把这些基础打扎实了。
2.1 Python环境配置
做OCR,Python几乎是标配。我个人习惯用Python 3.8或3.9,这两个版本对主流框架的兼容性最好。你可能会问,为什么不用最新的3.12?嗯,这里要注意,很多OCR的底层库(比如一些C++扩展)还没跟上最新版,强行用容易踩坑。
安装Python时,记得勾选“Add Python to PATH”。我见过太多人忘了这一步,结果在命令行里敲python死活找不到命令。如果你已经装好了,可以在终端里验证一下:
python --version
pip --version
如果能看到版本号,说明环境没问题。否则,检查一下环境变量,或者干脆重装一遍。
2.2 Anaconda与虚拟环境
做项目最怕什么?依赖冲突。你想想看,项目A需要PyTorch 1.10,项目B需要PyTorch 2.0,要是装在一个环境里,迟早出问题。这时候虚拟环境就派上用场了。
我个人强烈推荐Anaconda。它不光能管理Python版本,还能隔离各种包。安装Anaconda之后,创建虚拟环境很简单:
conda create -n ocr_env python=3.9
conda activate ocr_env
你看,一个叫ocr_env的干净环境就建好了。以后所有OCR相关的包都装在这里,跟其他项目互不干扰。我在项目中遇到过好几次,因为环境混乱导致模型训练结果对不上,排查了半天才发现是某个包的版本被悄悄升级了。从那以后,我每个项目都单独建一个虚拟环境,再也没出过这种问题。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名。或者直接在conda里配置:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/。
2.3 PyTorch/TensorFlow安装
OCR领域,PyTorch和TensorFlow是两大主流框架。我个人更偏爱PyTorch,它的调试体验更友好,而且学术界很多OCR论文都是用PyTorch实现的。当然,TensorFlow在工业部署上也有它的优势,比如TFLite在移动端表现不错。
安装PyTorch时,一定要去官网(pytorch.org)用那个配置生成器。它会根据你的操作系统和CUDA版本,生成最合适的安装命令。比如:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
这里cu118表示CUDA 11.8。如果你没有GPU,可以装CPU版本:
pip install torch torchvision torchaudio
TensorFlow的安装也类似:
pip install tensorflow
如果你有GPU,记得装tensorflow-gpu(不过从2.1版本开始,官方已经合并了,直接装tensorflow就会自动匹配GPU)。
2.4 CUDA与GPU环境验证
装好框架之后,怎么知道GPU能不能用?别急,咱们一步步验证。
首先,确认你的NVIDIA驱动装好了。在终端里敲:
nvidia-smi
如果能看到GPU型号、驱动版本、CUDA版本,说明驱动没问题。比如我机器上显示的是“CUDA Version: 11.8”。
然后,验证PyTorch能不能调用GPU:
import torch
print(torch.cuda.is_available()) # 应该输出 True
print(torch.cuda.device_count()) # GPU数量
print(torch.cuda.get_device_name(0)) # GPU型号,比如 "NVIDIA GeForce RTX 3090"
如果输出True,恭喜你,环境搭好了。如果输出False,别慌,检查一下:
- PyTorch版本是否支持你的CUDA版本?
- 驱动是否更新到最新?
- 是不是装了CPU-only版本的PyTorch?
TensorFlow的验证也类似:
import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
如果能看到GPU设备列表,就说明一切正常。
os.environ['CUDA_VISIBLE_DEVICES']='0,1'来指定用哪几张。我在训练大模型时经常这么干,避免把显存占满导致其他任务卡死。
2.5 总结
环境搭建说白了就是三板斧:装Python、建虚拟环境、装框架和CUDA。每一步都有坑,但只要你按部就班来,基本不会出大问题。我建议你把每一步的验证命令都跑一遍,确保每个环节都通了再往下走。毕竟,后面训练模型时如果环境出问题,排查起来更头疼。
下一章,咱们就开始动手写第一个OCR demo了。到时候你会发现,环境搭好了,后面的事就顺了。