这个帖子写给23年刚买电脑、系统是win11,tensorflow版本是2.10以上的兄弟们。不符合的可以去看其他答案了。
这是以我三天来的安装经历来写的,希望能给后来的兄弟们减少时间的浪费。
win11,安装的tensorflow的版本都是2.12的,但是从2.10开始tensorflow就不支持gpu了,这点在英文版的安装页面里有
而中文版是没有这个提示的,估计也是很多人试了很多遍,检查了很多次环境变量都解决不了为什么就是不能调用gpu的原因。此时我们只能通过wsl2的方式来安装了,这是在windows里运行了一个虚拟机环境
想要去官网看的点链接,记得改成英文
不想去的可以接着看,我一步步记录。
1、安装WSL
进到https://learn.microsoft.com/zh-cn/windows/wsl/install安装WSL2,
wsl --install
显示这个就是安装完成,此时重启电脑。
好了,重启完我们继续。
提示:上述命令默认安装ubuntu,不想用的可以按照下面图片里的进行更改
2、设置 Linux 用户信息
安装了linux,就开始设置
官方给了链接:https://learn.microsoft.com/zh-cn/windows/wsl/setup/environment#set-up-your-linux-username-and-password
可以WIN+S搜ubuntu,也可以在安装应用里找到
进入显示
官网这样说:
根据提示,输入passwd,进行密码设置,输入时不会显示,
接下来升级更新
3、设置 Windows Terminal
win+s输入cmd打开终端
边上有个向下的箭头,打开,点设置,然后在启动里的默认终端应用程序选择windows终端
也不知道设置这啥用,先设置吧
4、检查正在运行的WSL版本
输入:
wsl -l -v
显示:
这里就WSL安装完成了
5、英伟达CUDA相关安装
官网链接:
NVIDIA GPU Accelerated Computing on WSL 2
这里我们直接开始安装
进入:Official Drivers | NVIDIA
CUDA这里大家应该都安装过了,没有安装的,就点链接进去安装就好了
这里我们已经安装过了。
注意:CUDA是安装win11的,但工具包也就是CUDA Toolkit要安装linux的,
sudo apt-key del 7fa2af80
这行代码应该是之前安装过Linux的,我输入没有结果,报了个warning
我就没管,继续下一步,下载Ubuntu-WSL专属的工具包
链接:CUDA Toolkit 12.1 Downloads | NVIDIA Developer
进去就选好了
下载代码,一步步来吧。
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
(1)cmd进入终端,输入wsl.exe,进入Linux
输入:
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
(2) 输入
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
等待下载完成
输入
sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
输入
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
输入
sudo apt-get -y install cuda
一大堆下载安装
到这里CUDA工具包就安装好了。
这里是说没有用WSL-Ubuntu软件包安装Toolkit 的要参考的。
6、安装Miniconda
我们接着上面的继续在ubuntu里输入
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
可能需要重新启动终端或 source ~/.bashrc 以启用 conda 命令。 使用conda -V 测试是否安装成功。
7、创建conda环境
在刚才进的conda环境输入
conda create --name tf python=3.9
又开始下载安装一堆东西
按照提示,我们输入
conda activate tf
来激活刚才创建的tf环境,接下来的东西要在环境激活的条件下才能完成。
8、设置GPU
激活环境,并查看是否安装了GPU驱动
conda activate tf
nvidia-smi
这里又安装了一下cudatoolkit,不知道为啥,不管了,安吧
conda install -c conda-forge cudatoolkit=11.8.0
得,上一次的下载安装又来一次
接着安装cudnn,pip安装换个源吧,快一点,我习惯用豆瓣源了,也可以换其他源pycharm通过pip下载一直不成功的解决方法_pycharm包下载不了_坠星不坠的博客-CSDN博客
pip install nvidia-cudnn-cu11==8.6.0.163 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
安装完之后是配置环境
CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib
上面这个每进一次就要配置一次,接下来是自动配置,下面两句是一行,不要复制成两行了
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
9、安装 TensorFlow
注意:不要使用 conda 安装 TensorFlow。 它可能没有最新的稳定版本。 推荐使用 pip,因为 TensorFlow 仅正式发布到 PyPI。
所以接下来安装tensorflow就用cmd就行了,也是换个源吧
pip install --upgrade pip
pip install tensorflow==2.12.0
10、验证是否成功
验证cpu
python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
验证gpu
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
显示,gpu显示空,我估计是失败了,继续找为什么。
问题解决,可以用GPU了!!!
又用了两个小时找各种方法试,怀疑是自己流程没对,也重新装了几个docker环境,到装第三个的时候发现有一步错了,装tensorflow的时候是在conda环境里装,教程说的是不要用conda命令,我理解成不要在conda环境里了,换成在conda环境里装就好了。
还是用上面的验证方法。
附带其他博主安装教程
在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch_conda安装cuda_溯水襄陵_的博客-CSDN博客