第3章:深度学习框架:PyTorch/TensorFlow环境搭建、基础操作

搭建深度学习环境这事儿,说实话我踩过不少坑。尤其是ADMET研究,数据量和模型复杂度都比较特殊,一个稳定的环境能省下几周调试时间。

3.1 硬件与操作系统准备

你想想看,深度学习训练的核心其实是GPU。CPU当然也能跑,但对于ADMET数据中的高维特征,GPU提速可不是一星半点。

我个人习惯先检查硬件环境,再决定装什么版本。下面是常见的配置要求:

组件 最低要求 推荐配置
GPU NVIDIA GTX 1050 (4GB) NVIDIA RTX 3090 (24GB) 或以上
CPU 4核 2.5GHz 8核 3.5GHz 以上
内存 16GB 32GB 或 64GB
硬盘 SSD 256GB SSD 1TB (NVMe)
操作系统 Ubuntu 20.04 / Windows 10 Ubuntu 22.04 / Windows 11

注意:装PyTorch或TensorFlow的GPU版本,你得先看看自己的显卡。NVIDIA卡用CUDA,AMD卡得另找路径。我刚开始用PyTorch时,就因为没装对CUDA版本,白白折腾了一天。

3.2 CUDA与cuDNN的安装

说白了,CUDA是NVIDIA的并行计算平台,cuDNN是深度学习加速库。两个都得装对版本。

我以前在项目中遇到过,CUDA 11.8配PyTorch 1.13挺稳,但换成2.x系列就必须用CUDA 12.1以上。为什么会这样?因为框架版本跟CUDA是绑定的。

安装步骤其实不复杂:

  1. 去NVIDIA官网下载CUDA Toolkit(选.run或.deb包)。
  2. 安装完成后,配环境变量。
  3. 下载cuDNN库,解压后把文件复制到CUDA目录下。

举个例子,这是Ubuntu下配环境变量的写法:

export PATH=/usr/local/cuda-12.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-12.1

小建议:装好后执行 nvcc --version 和 nvidia-smi,看看CUDA版本对不对。我曾经忘了重启终端,查了半天才发现错位。

3.3 创建虚拟环境(Anaconda推荐)

在ADMET项目中,不同模型可能依赖不同版本的库。我一般用Anaconda管理环境,想切就切,不会污染系统。

安装命令很简单:

wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
bash Anaconda3-2023.09-0-Linux-x86_64.sh

装好后,创建一个专属环境:

conda create -n admet_env python=3.9
conda activate admet_env

嗯,这里要注意。Python版本别追新,3.9或3.10对大部分框架最友好。

3.4 PyTorch安装与验证

PyTorch现在在ADMET研究圈子里很流行。它的动态图机制调试起来挺顺手的。

安装命令取决于你的CUDA版本。用conda装最省心:

conda install pytorch torchvision torchaudio cudatoolkit=12.1 -c pytorch -c nvidia

或者用pip也行:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

验证是否装好:

import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.get_device_name(0))

如果看到 True 和你的显卡型号,说明环境亮了。我刚开始用PyTorch时,就是靠这几行代码确认GPU调通的。

3.5 TensorFlow安装与验证

TensorFlow的安装路子跟PyTorch不太一样。它更依赖CUDA和cuDNN的精确匹配。

我的建议是直接用官方推荐版本:

pip install tensorflow==2.15.0
pip install tensorflow-gpu==2.15.0

验证代码:

import tensorflow as tf
print(tf.__version__)
print(tf.config.list_physical_devices('GPU'))
print(tf.test.is_gpu_available())

关键点:TensorFlow 2.x以后,tensorflow-gpu包已经整合到主包。但你得装对CUDA版本。我遇到过装好但找不到GPU的问题,结果是CUDA版本对不上。

3.6 基础操作:张量与设备分配

说白了,深度学习操作的核心是张量(Tensor)。PyTorch和TensorFlow都靠它。

在实际的ADMET工作中,你得把数据加载到GPU上。比如:

import torch

# 创建张量并移到GPU
tensor_cpu = torch.randn(3, 4)
tensor_gpu = tensor_cpu.cuda()
print(tensor_gpu.device)

# 反向操作
tensor_cpu_again = tensor_gpu.cpu()

TensorFlow的操作类似:

import tensorflow as tf

# 查看默认设备
print(tf.config.list_physical_devices())

# 显式分配
with tf.device('/GPU:0'):
    tensor_gpu = tf.random.normal([3, 4])
    print(tensor_gpu.device)

我自己的习惯是:在大数据加载时,先用CPU处理,再批量移到GPU。这样能避免显存炸掉。

3.7 本章知识图谱

下面这张图概括了环境搭建的核心流程和关键节点。你跟着走就不会乱:

深度学习环境搭建流程 硬件与操作系统 安装CUDA + cuDNN Anaconda虚拟环境 PyTorch安装验证 TensorFlow安装验证 基础操作与设备分配 注意:CUDA版本与框架版本需要匹配 nvcc --version 和 nvidia-smi 显示不同CUDA版本是正常现象

3.8 实践中的避坑建议

讲几个我这些年踩过的坑:

  • 版本冲突:尽量不要混合使用conda和pip装依赖。我一般先在conda里装核心包,缺什么再用pip补。
  • 多环境隔离:每个ADMET项目创建一个独立环境。我试过一个环境跑多个模型,结果TensorFlow和PyTorch互相抢CUDA版本。
  • 检查GPU状态:每次跑任务前,跑一下 nvidia-smi,看看显存够不够用。

说白了,环境搭建是门细活。你花一小时配置好,后面省去十几个小时排错。我刚开始做ADMET时,就因为版本不匹配,整整调了两天。

好了,环境搭好、基础操作也跑通,剩下的就是在具体项目里磨炼了。