以unet-3d为例配置pytorch-gpu环境
U-Net学习
赛题是U-Net3D,为了更好的理解赛题,从U-Net学起,打好基础。
参考资料:
从零开始的U-net入门 (个人感觉是目前最全面、理解最深透的教程)
U-Net论文代码逐行实现解读 我们最终要学习并实践的代码
u-net代码环境配置
本机cuda配置
-
检查cuda环境
u-net代码中主要用到了torch,如何安装gpu版torch是重点,以windows操作系统为例,首先我们电脑需要安装有cuda,如何检验电脑是否安装好了cuda呢?win+r输入cmd回车,后在命令行中输入nvcc -V,如果正常输出信息即可。
nvcc -V
-
配置cuda环境变量
如果没有正常输出呢?我们需要检查电脑中是否已经安装有cudatoolkit,可能是没有设置好环境变量,我们打开C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA这个路径下查看有无cuda(也可能是在C:\Program Files (x86)\NVIDIA GPU Computing Toolkit\CUDA)。如果有的话,设置CUDA的环境变量即可,编辑windows系统环境变量,编辑Path变量如图将其修改为自己的对应路径,我这里将cuda v12.0放在上面,因为我电脑装了两个cuda版本,但是我自己设置的12.0的优先级比11.3高(可以通过上移或下移来设置),系统会默认我使用12.0的版本
-
如果本机没有安装cudatoolkit,安装cudatoolkit!
以上情况是电脑里已经安装了cudatoolkit,那么如果没有安装cudatoolkit呢?当然是先安装cudatoolkit啦!但是别着急,在安装cudatoolkit之前,我们需要win+r输入cmd,在命令行中输入nvidia-smi(如果没有正常输出的话,在windows搜索功能栏中输入nvidia-smi,找到nvidia-smi.exe的位置,后把其加入windows的Path环境变量中即可,例如我的位置是在"C:\Windows\System32\nvidia-smi.exe")
-
检查cuda驱动版本所能支持的cuda最高版本
nvidia-smi
-
安装cuda驱动
好啦,现在我们知道我的cuda驱动版本是528.24,最高支持的cuda版本是12.0,在这里由于每个人电脑配置不一样,下载的cuda驱动版本不一样,有的人可能驱动比较老,但是一般来说能支持到cuda 11.x的版本都够用,实在是驱动版本太低的话,可以重新安装cuda驱动,方法也非常简单
进入NVIDIA官方网站,根据自己显卡配置选择相应的驱动版本,然后正常一路安装即可
-
安装cudatoolkit
这里我们尽量不去安装cuda10.2的版本,因为注意pytorch官网上说pytorch win版已不支持cuda10.2,所以我们可以安装cuda11.6或者cuda12.0都可以,安装12.0最好,因为12.0可以用所有的低版本。当然,最高能安装哪个版本的cudatoolkit,还要看nvidia-smi所支持的最高版本,总之安装最高版本肯定没有问题!
这里我们进入NVIDIA官方网站下载 对应的cudatoolkit,注意安装的时候选择自定义安装,会提醒你安装哪些东西,我们只需要选择cudatoolkit足矣,不需要再重新安装cuda driver驱动了,可以直接安装在C盘默认位置。
这时候我们的windows的cuda环境就配置好了,接下来配置我们的anaconda的python环境
anaconda中python环境配置
我们采用anaconda管理python环境,每次遇到一个新的python项目,就新建一个python环境,这种方式管理的python环境清晰,不引起冲突
没有anaconda的话,百度anaconda下载一路安装即可。
打开anaconda power prompt命令行窗口,首先新建名为unet的python环境
conda create -n unet python=3.10
接下来是关键,我们可以通过简单浏览代码,发现代码中使用的是pytorch,那么最重要的三个包就是torch、torchaudio和torchvision,当然安装gpu版本的方法很简单也很多,感兴趣可以之前我总结的方法,但是对于小白来说,使用pytorch官网推荐的安装方法固然简单,但是需要解决网速慢的问题。在这里我推荐手动下载.whl文件,然后pip install的方法。
-
安装u-net项目依赖
在项目没有明确依赖包的版本要求说明的情况下(比如没有requirements.txt),我们需要自己去尝试依赖包的版本问题,最简单的办法就是直接运行主程序,缺少哪个包就装哪个包,unet项目的主程序是experiment.py
激活刚刚新建的python环境
conda activate unet
运行主程序
python experiment.py
很明显会报错
Traceback (most recent call last): File ".\experiment.py", line 23, in <module> import numpy as np ModuleNotFoundError: No module named 'numpy'
我们就pip install就行,-i 参数意思是使用清华的国内镜像源,网速快!
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
以上就是基本思想,那么最重要也是最容易出错的三个模块torch、torchaudio和torchvision这里我推荐直接从官方whl文件下载地址 下载,根据个人踩坑经验,这里版本我推荐torch-1.13.1+cu116-cp310-cp310-win_amd64.whl、torchaudio-0.13.1+cu116-cp310-cp310-win_amd64.whl和torchvision-0.14.1+cu116-cp310-cp310-win_amd64.whl,将他们手动下载下来,然后再进入他们路径下面分别pip install即可,将以上三个文件下载好之后,执行下面我这个命令即可
pip install torch-1.13.1+cu116-cp310-cp310-win_amd64.whl torchaudio-0.13.1+cu116-cp310-cp310-win_amd64.whl torchvision-0.14.1+cu116-cp310-cp310-win_amd64.whl labml labml_helpers matplotlib
然后运行,程序就可以运行起来了!
python experiment.py