-
验证GPU是否成功
torch
import torch
torch.cuda.is_available()
tensorflow
import tensorflow as tf
# tf.test.is_gpu_available() #这个已经弃用了 不用这个测试
print(tf.test.is_built_with_cuda())
2. Tensorflow GPU
不需要安装cuda cudnn 安装tensorflow-gpu 将会自动安装这两个包
2.1 NVIDIA >= 450.80.02
cmd后输入 nvidia-smi 查看nvidia驱动版本 版本不够——升级
升级:设备管理器——显示适配器——NVIDIA GeForceXXX——NVIDIA官网
按照自己电脑的型号下载 升级驱动
2.2 安装指令
需要安装tensorflow-gpu的环境以 ABC为例 (所有的操作需要在环境中安装)
在prompt中 依次输入
conda activate ABC
conda install tensorflow-gpu=2.6.0
安装完成后 conda list 可以查看到安装好的cudatoolkit 和 cudnn 包
一开始import tensorflow as tf的时候会报错
AttributeError: module 'numpy' has no attribute 'object'. `np.object` was a deprecated alias for the builtin `object`
原因:numpy的版本太新了 要uninstall新版本然后 使用旧版本
pip install numpy==1.23.5
补充: 安装1.X 版本的tensorflow-gpu
conda install cudatoolkit=10.0
conda install cudnn=7.6
conda install tensorflow-gpu=1.15
3. Torch GPU 现在选择第三种方法
不安装tensorflow GPU的话
需要1.装cuda cudnn包 2.升级nvidia版本(看有个博主说要升级驱动 但我升级完还是False)
3.1 失败的步骤
-
在prompt中pip install torch
-
通过 pytorch官网上指令 最后结尾是 -c pytorch 这两种方式我尝试后的结果都不对
3.2 torch和torchvision的GPU版本
GPU版本pyTorch安装教程_安装gpu版本的pytorch_楊龘龘的博客-CSDN博客 参考这篇文章的后面部分
-
CUDA版本和PyTorch对应关系 举例CUDA11.3下载的是pytorch1.8.1和pytorchvision0.9.1
-
cu开头的是GPU版本的,CPU开头的是CPU版本
-
cp后面的数字是当前环境(ABC)下python的版本 举例python 3.8 选择 cp38
-
下载对应的torch和torchvision 下载后两个文件放入目录位置不限
在prompt激活ABC环境 cd到下载目录位置 (torchvision操作同)
pip install “torch-1.8.1+cu101-cp38-cp38-win_amd64.whl”
3.3 torch-gpu 另一种方法:
官网yyds 就是得找previous版本 不然直接的界面下的是 CPU
电脑nvidia-smi是12.1 但是安装完了cuda 12.1 这个可以版本向下兼容的
(但是会影响pytorch安装 所以不装最新的!!!!)
nvcc -V 12.1 之后 pytorch没有对应的版本 这个不行 还是选择cuda11.7
-
cuda cudnn安装 见后面 (防止电脑再重装忘掉了)
所以我选择安装 11.7的cuda 及对应的cudnn 11.x
Previous PyTorch Versions | PyTorch 用官网上的 代码下载
在prompt中 到环境中 输入以下 使用对应的pip conda装的新包是cpu版本的!!!!气鼠
# CUDA 11.7
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
4 cuda cudnn安装
官网 cuda11.7 Install Type :(exe) local —— cudnn 11.x 一定要注意安装cuda软件的版本
4.1安装过程
-
这里地址安装完后 文件夹会自动删除 可以不用更改
![](https://i-blog.csdnimg.cn/blog_migrate/a893db6ba0dec84570a98c0967a11b69.png)
-
安装选项:自定义
-
在下图这里 更改地址 (图片仅供参考 因为我好想没有这么多条 只有第一个)
![](https://i-blog.csdnimg.cn/blog_migrate/dd2e5bc1c7a78dc53497dd44045f9510.png)
-
安装完后的文件夹 : D:\CUDA11.7\NVIDIA GPU Computing Toolkit\CUDA\v11.7
(我貌似只有这一个文件夹) 这里到有bin文件夹的界面
-
cudnn压缩包中的文件 按照文件夹 合并到 上面的对应的文件夹位置中 (图片仅供参考)
![](https://i-blog.csdnimg.cn/blog_migrate/61991dbc013a7d54b1597e3f71c41406.png)
4.2 环境变量!!!
cuda安装完后 系统变量中会自动有 CUDA_PATH 和 CUDA_PATH_V11_7 (图片仅供参考)
![](https://i-blog.csdnimg.cn/blog_migrate/3c95d4d1b7cba93e17580c65c3e968f9.png)
系统环境变量PATH中要添加: 上面mark文件夹
\v11.7\bin \v11.7\libnvvp \v11.7\include \v11.7\lin\x64
Ubuntu远程安装pytorch环境
anaconda下载linux sh文件 ( python 3.11) 放到/home/user/Anaconda3
Press ENTER 直接在键盘上按一下回车 不是 把字母打上去 不然就会生成ENTER文件夹
You can undo this by running conda init --reverse $SHELL 选择了YES 后续自动进入base环境
or
出现了 Do you wish the installer to initialize Anaconda3 by running balba 选择yes 但是没有自动进入base环境
conda activate base 啥的 都出现 You may need to close and restart you shell balbal
退出远程 重新连接 就不会出现问题 且直接进入base环境
编辑环境变量 vim ~/.bashrc 在最后的else语句中可以看到如下 ESC 后输入:e! 退出vim界面
export PATH="/home/User/Anaconda3/bin:$PATH"
vim .bashrc可以对bashrc进行更改,任何可以用vim进行修改的内容,如果想退出编辑模式回到命令行界面,只需要先按Esc,然后输入
如果是vi,则:Esc 退出编辑模式,输入以下命令:
:wq 保存后退出vi,若为 :wq! 则为强制储存后退出(常用)
:w 保存但不退出(常用)
:w! 若文件属性为『只读』时,强制写入该档案
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:e! 将档案还原到最原始的状态!
注意冒号也要输入
创建新环境 conda create --name yolov5 出现CondaHTTPError:
conda config --set offline true 离线创建环境 就可以了
安装cuda 查看电脑cuda版本 CUDA Toolkit Archive | NVIDIA Developer 下载对应版本
Linux x86_64 Ubuntu version 选的是20.04 使用命令行安装 (图只是示意) 12.0的cuda 选择官网11.7.1
wget之前会报错 是因为公司电脑开了梯子 以及 pip install 也会报 warning retry 后面关掉就好了
第二行命令行报错 后 推翻 安装cuda 公司电脑中原本安装好cuda相关的版本了 只需要在vim界面的最后添加相应的环境变量
export CUDA_HOME=/usr/local/cuda-11.1
export PATH=/usr/local/cuda-11.1/bin:$PATH
#export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/targets/x86_64-linux/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
torch安装 选择 pytorch官网上对应的11.7.1版本 linux pip 得到 cuda True!