2、TensorFlow环境搭建:TensorFlow 2.x安装、GPU配置、虚拟环境管理、常用依赖库安装与验证

说实话,很多初学者在学强化学习时,第一个拦路虎不是算法本身,而是环境搭建。我见过太多人卡在「装不上」「跑不起来」「版本冲突」这些坑里,一卡就是一整天。所以这一章,咱们先把地基打牢。

我个人习惯是:先搭虚拟环境,再装依赖,最后验证。三步走,稳得很。

2.1 虚拟环境管理:为什么必须用?

你想想看,一个项目用 TensorFlow 2.10,另一个项目用 2.15,如果全装到系统 Python 里,迟早要打架。我当年刚入行时,就因为没管环境,把公司服务器的 Python 搞崩了,被运维大哥骂了一顿……从那以后,我再也不敢偷懒了。

推荐用 condavenv。我个人更倾向 conda,因为它连 CUDA 和 cuDNN 都能一起管。

核心原则:每个项目一个独立环境,互不干扰。

创建虚拟环境

# 用 conda 创建 Python 3.9 环境
conda create -n tf_rl python=3.9

# 激活环境
conda activate tf_rl

# 退出环境
conda deactivate

嗯,这里要注意:环境名别起得太随意。我见过有人起名叫 test,结果三个月后自己都忘了里面装了什么。建议用项目名,比如 tf_rlmulti_agent 这种。

2.2 TensorFlow 2.x 安装

TensorFlow 2.x 相比 1.x 改进了太多。说白了,1.x 写个计算图跟写汇编似的,2.x 终于像正常 Python 了。我建议直接上 2.10 或 2.12,这两个版本比较稳定。

CPU 版本安装

pip install tensorflow==2.10.0

GPU 版本安装

GPU 版本稍微麻烦一点。你需要先确认自己的显卡支持 CUDA。我踩过的坑是:版本必须严格对应

重要:TensorFlow 2.10 对应 CUDA 11.2 + cuDNN 8.1。版本不对,装上了也跑不起来。
# 先装 CUDA 11.2 和 cuDNN 8.1(手动下载安装)
# 然后安装 GPU 版 TensorFlow
pip install tensorflow-gpu==2.10.0

为什么会这样?因为 TensorFlow 底层调用的是 NVIDIA 的 CUDA 库,版本不匹配就会报 Could not load dynamic library。我曾经为了排查这个错误,花了整整一个下午……后来学乖了,每次装之前先去官网查版本对应表。

验证安装

import tensorflow as tf
print(tf.__version__)
print("GPU Available:", tf.config.list_physical_devices('GPU'))

如果输出显示 GPU 设备列表,恭喜你,环境搭好了。如果显示空列表,别慌,先检查 CUDA 版本,再检查环境变量。

2.3 常用依赖库安装

强化学习项目离不开几个核心库。我列一下我的「标配清单」:

库名 用途 安装命令
NumPy 数值计算、矩阵操作 pip install numpy
Gym 强化学习环境库 pip install gym
Matplotlib 数据可视化、画奖励曲线 pip install matplotlib
Pandas 数据处理、日志分析 pip install pandas
小技巧:可以把所有依赖写进 requirements.txt,一行命令全装完:
pip install -r requirements.txt

Gym 环境验证

import gym
env = gym.make('CartPole-v1')
state = env.reset()
print("Gym 环境初始化成功,状态空间维度:", len(state))

CartPole 是强化学习的「Hello World」。我第一次跑通时,看到小车在屏幕上左右摇摆,还挺有成就感的。

2.4 完整验证脚本

我习惯写一个验证脚本,一键检查所有依赖是否就绪。这样后面写代码时心里有底。

# check_env.py
import tensorflow as tf
import numpy as np
import gym
import matplotlib.pyplot as plt

print("TensorFlow 版本:", tf.__version__)
print("NumPy 版本:", np.__version__)
print("Gym 版本:", gym.__version__)

# GPU 检查
gpus = tf.config.list_physical_devices('GPU')
if gpus:
    print("✅ GPU 可用:", gpus)
else:
    print("⚠️ GPU 不可用,使用 CPU 模式")

# 简单测试:用 TensorFlow 做矩阵乘法
a = tf.constant([[1.0, 2.0], [3.0, 4.0]])
b = tf.constant([[5.0, 6.0], [7.0, 8.0]])
c = tf.matmul(a, b)
print("矩阵乘法测试通过:\n", c.numpy())

# Gym 环境测试
env = gym.make('CartPole-v1')
state = env.reset()
print("Gym 环境测试通过,状态维度:", state.shape)

# Matplotlib 测试
plt.figure()
plt.plot([1, 2, 3], [4, 5, 6])
plt.title("Matplotlib 测试")
plt.show()

print("🎉 所有依赖验证通过!")

跑这个脚本时,如果每一步都输出正常,那你的环境就稳了。如果哪一步报错,就针对性地排查。

2.5 常见问题与避坑指南

  • pip 安装慢? 换国内镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
  • GPU 装上了但 TensorFlow 不认? 检查 LD_LIBRARY_PATH 环境变量是否包含 CUDA 的 lib 路径
  • Gym 版本冲突? 有些旧环境需要特定版本,建议用 gym==0.21.0
  • 虚拟环境激活后 pip 还是全局的? 检查 which pip 路径是否在虚拟环境目录下
我曾经踩过的坑:在 Windows 上装 GPU 版 TensorFlow,CUDA 路径里有空格,导致一直报错。后来把路径改成纯英文就解决了。所以,安装路径不要有中文和空格

2.6 小结

环境搭建这件事,说难不难,说简单也不简单。关键是耐心和细心。我建议你装完后,把验证脚本跑一遍,确认所有组件都正常工作,再开始后面的学习。

下一章,咱们就要正式进入强化学习的核心概念了。到时候你会发现,环境搭好了,后面的路就好走多了。

一句话总结:虚拟环境隔离 + 版本严格对应 + 验证脚本兜底 = 稳如老狗。

公众号:蓝海资料掘金营,微信deep3321