一、复现代码举例
我们在复现其他baseline的时候,要看代码的环境要求,例如:
# Environment Setup
Python 3.7.13
CUDA 11.1
Pytorch 1.10.1
torchvision 0.11.2
注: 以上的环境是必须要按照作者要求的安装,如果换其他的版本,就可能会出错。而其他依赖可以直接pip安装,无版本要求。
二、创建环境——选择一个Python版本
为了方便环境管理,我们是基于工程来创建这个工程的环境。
2.1 创建基本环境
2.1.1 基于AutoDL
- 先建一个基本环境:
- 进入终端、创建python:
conda create -n hra37 python=3.7.13
2.1.2 基于PyCharm
- 打开一个工程;
- 创建基本环境:File -> Settings -> Project -> Python Intepreter -> Conda Environment -> 点 **+ ** ->New environment -> 指定Python版本和修改环境名字
安装时出现错误:
排查错误:
- 查看镜像源是清华还是中科大:
conda config --show channels
显示如下:(显示为中科大)
- 用终端创建环境,需要cd到anaconda3/bin下在安装:
conda create -p /home/wanghui/anaconda3/envs/HRA-UNET -y python=3.7.13
依然出现问题。发现是本身服务器的问题。然后,将服务器放在AutoDL的私有云上,重新配环境,成功。
2.2 终端激活环境
conda activate hra37
2.3 退出环境
conda deactivate
2.4 删除环境
conda remove -n hra37 --all # hra37是我想删除的环境名
三、PyTorch安装
3.1 查看cuda
- 安装PyTorch必须找到对应的cuda,所以先查看自己的服务器CUDA。
-
终端输入命令:
nvidia-smi
-
终端输入命令:
nvcc --version
-
补充:
- nvidia-smi全程是NVIDIA System Management Interface ,它是一个基于前面介绍过的NVIDIA Management Library(NVML)构建的命令行实用工具,旨在帮助管理和监控NVIDIA GPU设备。
- nvcc和nvidia-smi显示的CUDA版本不同。CUDA有两个主要的API:runtime(运行时) API和driver API。这两个API都有对应的CUDA版本(如9.2和10.0等)。如果driver API和runtime API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。 参考:显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn详解
结论: 这个服务器的cuda 11.7,可向下兼容。
3.2 查看linux系统的版本号
uname -a
3.3 GPU配置解释
此时显卡状态为正在双卡运行程序。
- NVIDIA-SMI:显卡(硬件)。
- Driver Version:显卡驱动。
- CUDA Version: CUDA版本。这里是11.7。
- Name:这表示GPU的型号,这里是NVIDIA GeForce RTX 2080Ti。
- Fan:风扇的状态,通常表示风扇的速度或转动百分比。此时,两张卡分别显示为“95%”、“76%”,表示风扇正在以95%和76%的速度运行。
- Temp:这是GPU的温度,通常以摄氏度(C)为单位。例如,“84C”表示GPU的当前温度是84摄氏度。
- Perf:代表性能状态,通常指示GPU当前的性能状态等级。P0~P12,P0最大,P12最小。
- Pwr:Usage/Cap:这表示GPU的功率使用情况。例如,“20W /350W”表示GPU当前正在使用20瓦的功率,而其最大功率限制为350瓦。
- Bus-Id:这是GPU在系统总线上的标识符,用于唯一地识别该GPU。
- Memory-Usage: 表示GPU显存的使用情况。例如,“4222MiB /11264MiB”表示当前使用了4222MiB的显存,而总共可用显存为11264MiB。
- GPU-Util: 表示GPU的利用率,即GPU被工作负载使用的百分比。如果这个参数是在反复跳动,是因为没有设置好CPU的线程数。具体解决方法参考:关于GPU显存占满(即memory usage 很大),但GPU-util很小,导致模型训练很慢
- Compute M. & MIG M.:这些可能与GPU的计算模式和多实例GPU(MIG)相关。
- Default:这可能表示GPU的某些参数或设置处于默认状态。
- N/A:这表示“不适用”或“不可用”,可能因为某些信息在当前状态下不可用。
3.4 安装PyTorch
- Linux:torch==1.10.1
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
- Linux:torch==1.9.1
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
- Windows:
pip install torch==1.10.1+cu111 torchvision==0.11.2 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
注: 这里可选择conda安装,也可以pip安装,我一般选择pip 安装,conda 安装有时候不成功。
四、其他依赖安装
4.1 cv2
清华镜像:(快)
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
4.2 tensorboardX
pip install tensorboardX
4.3 matplotlib
pip install matplotlib
4.4 medpy
- 必须先安装SimpleITK,且指定版本:
pip install SimpleITK==1.2.4
- 安装medpy:
pip install medpy
4.5 visdom
pip install visdom
4.6 pandas
pip install pandas
4.7 imageio
pip install imageio
4.8 torchsummary
pip install torchsummary
4.9 nibabel
pip install nibabel
以上,安装完代码需要的所有依赖,就可以训练或是测试了。
4.10 Screen 工具
- 终端安装:
apt-get update && apt-get install -y screen
- 终端输入screen,
回车
:
screen
- 回到前端,快捷键
ctrl + a + d
: - 查看screen列表:
screen -ls
- 回到screen端:
screen -r 1644.pts-0.autodl-container-df0d11a752-49e5d49b
- 在screen端退出screen:
exit
- 在终端关掉screen:
kill 1644.pts-0.autodl-container-df0d11a752-49e5d49b
4.11 sklearn
pip install scikit-learn
4.12 timm
pip install timm
4.13 skimage
pip install scikit-image
4.14 查看安装包
pip list
五、常用快捷键
5.1 激活环境
conda activate hra37
5.2 进入文件夹、复制文件、删除文件、运行文件
5.2.1 进入文件夹
- 进入文件夹:
cd HRA
注: 文件夹不需要全名,只需要输入前面几个字母,然后用 tab
键补齐。
- 退回上一层(上一级目录):
cd ..
- 退回两层
cd ../..
5.2.2 复制文件
例如:将U-Mamba-demo中的文件夹Dataset701_AbdomenCT里的文件
复制到U-Mamba/data/nnUNet_raw/Dataset701_AbdomenCT/里
- cd到要复制的文件夹
U-Mamba-demo
- 复制
cp -r Dataset701_AbdomenCT/* U-Mamba/data/nnUNet_raw/Dataset701_AbdomenCT/
5.2.3 删除文件
rm ./data/nnUNet_raw/Dataset701_AbdomenCT/imagesVal/._FLARETs_0014_0000.nii.gz
5.2.4 运行文件
nnUNetv2_predict -i ./data/nnUNet_raw/Dataset701_AbdomenCT/imagesVal -o ./evaluation/segs/Dataset701_UMambaEnc -d 701 -c 3d_fullres -f all -tr nnUNetTrainerUMambaEnc --disable_tta
5.3 解压、压缩文件
5.3.1 解压文件
- 安装包
apt-get update && apt-get install -y unzip
- 解压到当前的文件夹:
unzip xxx.zip
- 解压到指定的文件夹:
unzip <待解压压缩包名称>.zip -d <解压到哪个路径>
例:解压raw.zip文件到autodl-tmp里
unzip raw.zip -d /root/autodl-tmp
或
unzip -d /root/autodl-tmp raw.zip
5.3.2 压缩文件
- 安装包
apt-get update && apt-get install -y zip
- 压缩到当前的文件夹:
zip xxx.zip
- 压缩到指定的文件夹:
zip -r <自定义压缩包名称>.zip <待压缩目录的路径>- 例:
压缩Dataset209_KiTS2019文件夹
到autodl-tmp
- 首先,终端cd 到
autodl-tmp
文件夹。 - 然后,输入下面代码进行压缩:
- 例:
zip -r Dataset209_KiTS2019.zip autodl-fs/nnUNet-wh/DATASET/nnUNet_raw/Dataset209_KiTS2019
5.4 中断程序
- 强行中断当前程序的执行:
ctrl+c
- 任务中断,挂起,但此任务没有结束,在进程中,在后台:
ctrl+z
注: ctrl+z
也可以用于 撤销 操作。
5.5 显示当前暂停的进程
jobs -l
5.6 恢复暂停的进程
- 使第 N 个任务在后台运行:
bg N
- 使第 N 个任务在前台运行:
fg N
注: bg,fg 不带 N 时表示对最后一个进程进行操作。
5.7 kill进程
用 ctrl+z 终止运行,造成很多僵尸进程占用服务器内存。
- 查看服务器下python进程(grep过滤):
ps -ef | grep python
- kill 进程:(
我常用
)
kill -s 9 进程号
5.8 终端进入python
- 进入python
python
- 检查包是否安装成功,复制下面代码,终端输入:
import torch
import mamba_ssm
- 退出python
exit()
或
quit()
或
Windows快捷键:Ctrl + Z
Linux和macOS快捷键:Ctrl + D
参考博客
[1] 【程序错误】RuntimeError: one of the variables needed for gradient computation
[2] 【完美解决】RuntimeError: one of the variables needed for gradient computation