3D UX-net 训练记录
题外话:如果自己跑过nnunet或者其他模型的大佬会更容易上手,但是对于第一次跑模型的小白来说,这个模型也是很好上手和跑通的!本人就是小白,这是我跑通的第一个模型。
首先先去官网下载所需的代码和论文(跑之前可以先不看论文,我就是)
我自己电脑可以用 Download ZIP 直接下载,并且很快,如果下不了可以尝试复制 github 链接去 git 里面下载!这个也非常快!
下载完代码以后解压,通过 Xftp 上传到你的服务器里面。
下完代码以后可以去看 README.md ,打开就是这样的:
这里插个题外话,在 3DUX-Net 大标题下面有一个 Issues ,这个是广大亲爱的网友们在跑这个模型时出现的问题。一般建议是,出现的问题讨论越多越好,因为可能你也会出现那些问题,这样你大部分就可以根据里面的回答就解决了,不用再去搜怎么解决。因为这个是2023年刚出的,所以才 8 个讨论。
现在我们还不需要看网络架构,往下翻,可以找到 Installation ,也就是安装说明,这里面会告诉你需要安装什么环境。
点开 INSTALL.md 这个可以看到首先我们需要安装 Conda 环境:如果还没有装 anaconda 的或者环境还不会搭的,可以看我的之前的文章哦!~
在这里:环境安装(anaconda+pycharm+pytorch) - Ray-Z - 博客园 (cnblogs.com)
conda create -n uxnet3d python=3.8
conda activate uxnet3d
创建好一个叫 uxnet3d 的虚拟环境,后面的操作都在这个环境里面。
环境创建好以后,记得打开这个环境!!!
conda activate uxnet3d
然后就是装 PyTorch 了,这个需要和你的 CUDA 版本相对应,如果你只装 cpu 版的就不用这么麻烦了,具体怎么装,在我之前的文章也有写哦~
在这里:环境安装(anaconda+pycharm+pytorch) - Ray-Z - 博客园 (cnblogs.com)
题外话:这个模型虽然很新,但是它可以根据你自己的 CUDA 版本装对应的 PyTorch ,没有指定 PyTorch 版本就很好,在跑这个模型之前,我跑了 nnunet v2 ,他就对 PyTorch 有要求,而我可用的服务器的 CUDA 又比较低,所以还没有跑通。
装好 PyTorch 后,就可以进行下一步,装 monai 这个包。
pip install monai==0.9.0
这个装完以后就需要去代码文件夹下,有一个 requirements.txt ,一般可以先打开看一下以后需要装什么,有没有你装过的,装过的就需要删掉。
打开 Xshell ,之前我们已经进入这个环境了,所以括号里面是你当前虚拟环境的名字,后面的 ~ 符号,表示在你主文件下,可以理解为就是桌面,没有再退出的操作了,ll 可以查看你主文件夹下有哪些文件,我们看到了 3DUX-Net-main 的文件夹,然后 cd 进去就可以了,后面的 ~ 就变成了 3DUX-Net-main 文件夹名字。
ll
cd 3DUX-Net-main/
然后我们安装 requirements.txt
pip install -r requirements.txt
这些都下完以后基本上环境就搭好了,后面还缺什么运行需要你安装什么再说。
然后是文件架构,主页也给你写出来了,你照着这个建文件夹就行了。
我大概建的就是这个样子,我的 BTCV2017 是随便取的(因为训练的是自己的数据集),但是最好也是字母加数字的形式,并且字母都要大写哦。
然后就是训练了,因为我是训练自己的数据集,所以自己取了个名字,这里他提供了三个数据集,一个脑部(FeTA 2021)的两个腹部(FLARE 2021 、AMOS 2022)的。我和 FeTA 接近,所以选了这个训练。
首先你需要下载权重。三个数据集有三个权重,注意你用哪个就用哪个权重,别下错了,否则会报错的!下载权重需要一些魔法才可以下载~
然后是训练,在输入命令训练前,你需要改一些东西,比如你自己的地址和数据集名称(然后你用官网的数据集就不需要改,自己的数据集就需要改。)具体是改 main_train.py 和 load_datasets_transforms.py 这两个文件。
官网给的训练代码如下
python main_train.py --root root_folder_path --output output_folder_path \
--dataset flare --network 3DUXNET --mode train --pretrain False \
--batch_size 1 --crop_sample 2 --lr 0.0001 --optim AdamW --max_iter 40000 \
--eval_step 500 --gpu 0 --cache_rate 0.2 --num_workers 2
但是不需要这么多,我运行的代码是:
python main_train.py --root /home/用户名/3DUX-Net-main/数据集总文件夹名称 --output /home/用户名/3DUX-Net-main/数据集总文件夹名称/output --dataset 数据集总文件夹名称的英文字母(不用自己的就是官网给的那三个)
你也可以根据自己的需求改一些里面的参数。
你也可以放在服务器后台跑,代码如下:
nohup python main_train.py --root /home/用户名/3DUX-Net-main/数据集总文件夹名称 --output /home/用户名/3DUX-Net-main/数据集总文件夹名称/output --dataset 数据集总文件夹名称的英文字母(不用自己的就是官网给的那三个) &
然后会生成一个 nohup.out 文件,可以查看进度,用记事本打开就可以了。下面是我的:
进行测试,下面是官网给的代码:
python test_seg.py --root path_to_image_folder --output path_to_output \
--dataset flare --network 3DUXNET --trained_weights path_to_trained_weights \--mode test --sw_batch_size 4 --overlap 0.7 --gpu 0 --cache_rate 0.2 \
这是我自己的代码:
python test_seg.py --root /home/用户名/3DUX-Net-main/数据集总文件夹名称 --output /home/用户名/3DUX-Net-main/数据集总文件夹名称/output --dataset btcv --network 3DUXNET --trained_weights /home/用户名/3DUX-Net-main/best_metric_model.pth
因为我用的自己的数据集,所以其实效果并不好,但是跑通了,下一步再进行深入研究!大家一起加油呀!~
标签:UX,Net,--,文件夹,output,net,main,3DUX,3D From: https://www.cnblogs.com/Ray-Z/p/17463790.html