WSL2 配置 tensorflow 环境
Windows 系统中更新 NVIDA 驱动
这里可以直接通过 Geforce Experience 直接更新
更新完成后可以在命令行/wsl 中输入 nvidia-smi
可以看到输出

这里的 CUDA Version 指的是该驱动版本最高可支持的 CUDA 版本
安装 CUDA
到 NVIDIA官网下载符合条件的 CUDA

这里我一开始直接选择安装了最新版的 CUDA 12.4,随后发现 Tensorflow 目前 (2024.3.17) 并不支持 12.4,于是重新安装,选择了 CUDA 11.2


直接下载 EXE 版本安装即可
在安装时,会发现安装报错 cuda you already have a newer version of the nvidia frameview sdk installed
这里需要到系统设置里卸载NVIDIA frameview sdk 组件,我使用的是 Geek 进行卸载,很干净
注意:不要直接到 NVIDIA 文件夹删除对应文件
下载 ANACONDA
到最新下载地址找到对应的 ANACONDA 版本,复制链接
https://www.anaconda.com/products/distribution#linux |
根据脚本说明安装并编辑环境变量
export PATH="/path/to/conda/bin:$PATH" |
使用 conda init 进行初始化
WSL 中下载 CUDA TOOLKIT
前往官网找到对应版本的 TOOLKIT:https://developer.nvidia.com/cuda-toolkit-archive
复制官网指令进行安装
注意:如果不是最新版本,需要将最后一行修改为对应的版本号
错误处理
这里如果之前安装过不同版本的 TOOLKIT,可能会报错
Errors were encountered while processing: |
这里需要卸载已有的 CUDA TOOLKIT
sudo dpkg --force-all -P $(dpkg -l | grep cuda | awk '{print $2}') |
发现报错:
Removing cuda-toolkit-12-4-config-common (12.4.99-1) ... |
运行 ls -l /usr/lib/wsl/lib/libcuda.so*
发现对应文件不是一个符号链接
-r-xr-xr-x 1 root root 162552 Mar 2 07:04 /usr/lib/wsl/lib/libcuda.so |
删除错误的 libcuda.so.1 文件:
sudo rm /usr/lib/wsl/lib/libcuda.so.1 |
创建一个新的符号链接,使 libcuda.so.1 指向具体版本的文件,如 libcuda.so.1.1:
sudo ln -s /usr/lib/wsl/lib/libcuda.so.1.1 /usr/lib/wsl/lib/libcuda.so.1 |
运行 ldconfig 来更新库的缓存信息:
sudo ldconfig |
使用
sudo apt-get autoremove |
清理本地存储库里的软件包信息
重新安装即可
安装 cuDNN
还是一样,找到对应的安装文件:https://developer.nvidia.com/rdp/cudnn-archive,这里需要注册登录后才能下载
使用 windows 下载完成后移动到 Ubuntu 系统中。WLS 2 中:
- Linux 文件系统被映射到\wsl$\Ubuntu-20.04\
- Windows 的磁盘被挂载到了/mnt 下,可以直接访问
完成后通过 sudo dpkg -i NAME 即可安装
使用 conda 建立对应版本的 python 虚拟环境
conda create --name myenv python=3.8 |
之后即可使用对应指令安装对应版本的 TensorFlow
pip install tensorflow-gpu==2.11.0 |
Jupyter
pip install jupyterlab
使用如下命令启动 jupyter lab:jupyter lab --no-browser
测试 tensorflow
import tensorflow as tf |
发现报错

在 windows 桌面右键打开 NVIDIA 控制面板

将 PhysX 设置修改为指定显卡

成功解决
