利用conda搭建Pytorch和TensorFlow-GPU环境

为了准备相关比赛,最近在搭建机器学习的环境

这个 TensorFlow 在 Windows 平台调用GPU非常困难
网上看到好多帖子在讲这个问题,但各种尝试,结果都失败了
今天忙了一天总算把它装好了,总结一下,也分享一下经验

至于我选择 Conda 是因为

  • 首先我用的 Pytorch 和 TensorFlow-GPU 支持的 Python 版本不一样,需要虚拟环境
  • 其次它既有较成熟的社区,又不至于像 Docker 那样占空间
  • 最后是因为。。。用习惯了

新人博主,不喜勿喷(狗头保命)

今天是2024年8月2日,随着时间流逝,官方可能会对一些内容进行更改,出现的异常概不负责(狗头保命)
顺便说一句,你都搞机器学习了,有些事情我就不保姆级讲解了(再次狗头保命)

第一步 安装conda

Anaconda 和 Miniconda 都可以用
我选择了miniconda,因为它善 因为它节约空间
国内可以从 清华源 下载并安装,省的数据翻山越岭,当然如果你有别的手段可以当我放屁
注意,由于安装包按照字典序排列,所以请仔细寻找最新的版本

我今天要找到的是Miniconda3-latest-Windows-x86_64.exe
要是哪天Anaconda出第四代了、Windows全用ARM架构了 啥啥的,请自己找对应的安装包

接下来,你都开始搞机器学习了,运行安装包然后点下一步不用教了吧。。。

第二步 初始化conda

修改环境变量
控制面板 → \to 搜索“环境变量” → \to 编辑账户的环境变量 → \to 点击上框的Path
选择新建,并将Anaconda(miniconda)安装目录下的Scripts路径添加到其中

这一步方法很多,你爱咋咋地,我只是写了一种比较寻常的,你要是有疑问可以找些别的帖子

现在的 Windows 流行用 PowerShell

启动 PowerShell
运行

conda init powershell

这里好像是要重新开一个命令行,我失败了太多次,不记得了,你自己看着办吧

参考 清华源 Anaconda 帮助
在 PowerShell 运行conda config --set show_channel_urls yes
在用户目录修改.condarc的内容,如下

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

保存关闭,重开一个PowerShell,执行命令 conda clean -i

配置pip、安装 PyTorch 的环境

最新的 PyTorch 跟着 Python 的更新,适配到了今天的 Python 3.12,但我知道你看这篇文章的时候应该早就有了更新的版本,自己看着办
我给我的 PyTorch 选择了最新版本的Python,但当下,Windows 系统下 TensorFlow-GPU 不适配最新的 Python,所以两者不能放在同一个环境
我给 PyTorch 的环境起名叫 pytorch24,因为当前最新的是 PyTorch 2.4,你给他起什么名字随你便

依次运行下面的脚本:
创建环境记得改你自己起的名字和你想安装的版本号,不写 =3.12 好像也会默认安装最新的

conda create -n pytorch24 python=3.12

激活环境,这一行对应改成你自己环境的名字

conda activate pytorch24

更新pip

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

换 pypi 源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

可选,添加备用源:

pip config set global.extra-index-url "https://mirrors.cernet.edu.cn/pypi/web/simple"

上面这一步直接调用了 Anaconda 配置好的虚拟环境,有人说用 conda install 不太好,这我确实不清楚,反正配置环境蛮方便,出了问题以后再说(狗头)

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

这些是我自己要用的库,你自己看着要用也可以装上

pip install scikit-learn pandas matplotlib opencv-contrib-python seaborn xgboost scipy

这一行是安装jupyter notebook,你也自己看着办

pip install notebook

安装 TensorFlow-GPU

TensorFlow 有繁琐的版本对应,不建议随便改,但那个 tf210 是我起的名字,你改改没关系
知周所众,起名字一直是一个很麻烦的事情

依次执行命令
创建环境

conda create tf210 python=3.10

激活环境

conda activate tf210

安装虚拟环境的CudaToolkit 和 cuDNN

conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0

安装 TensorFlow

python -m pip install "tensorflow<2.11"

调整numpy版本

pip install -U numpy==1.24

下面两行可选,是一些常用的科学计算与机器学习库

pip install scikit-learn pandas matplotlib opencv-contrib-python seaborn xgboost scipy
pip install notebook

安装问题说明

PyTorch非常友好,conda有现成的包可以用
TensorFlow的安装有很多讲究

注意:TensorFlow中文文档长期没有维护,所以我们在参考时,全部切换至英文

TensorFlow只有 2.10 之前支持 Windows 平台的 GPU,
版本对照参考 官方构建程序时的说明
GPU版本对应关系

当前最新的对应关系是:TensorFlow_gpu-2.10.0 Python 3.7-3.10 MSVC 2019 Bazel 5.1.1 cuDNN 8.1 CUDA 11.2

参照 官方安装教程 所示,依次进行
官方安装教程

但TensorFlow仍然不能正常运行,出现的问题参考StackOverflow 社区的相关内容

Nothing helped me, except for downgrading tensorflow-metal to v.0.6.0:

"pandas>=2.0.0",
"ipykernel>=6.22.0",
"tensorflow-macos>=2.10.0",
"tensorflow-metal==0.6.0",
"openpyxl>=3.1.2",
"plotly>=5.14.1",
"matplotlib>=3.7.1",
"scikit-learn>=1.2.2",
"keras>=2.10.0",
"keras-self-attention>=0.51.0",
"numpy~=1.24",

requires-python = “>=3.9”

我遇到的问题似乎和题主有点区别,我的解决方法是:
其中提到需要的numpy版本应在 1.24 左右,但默认安装了当下最新的 2.01
执行命令pip install -U numpy==1.24即可

测试

PyTorch

在PowerShell激活环境后输入指令

python -c "import torch; print(torch.cuda.is_available())"

TensorFlow

在PowerShell激活环境后输入指令

python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值