TransUNet模型复现

前言

这里先说一些题外话,在感情路上,大家都或多或少经历过一些挫折,因此我帮我朋友问大家一个经典的感情问题:当你喜欢上一个对自己没有感觉的女生的时候应该怎么办!

哈哈,欢迎家人们在评论区留言~
阿尼亚
咳咳,言归正传了啊~

1. 下载代码

如果想复现一篇论文的模型,那么我们首先得找到这篇论文吧,然后论文里一般是有代码的链接的(链接一般放在在摘要的最后)。

像TransUNet这篇论文的话,论文链接:https://arxiv.org/pdf/2102.04306.pdf
代码链接:https://github.com/Beckschen/TransUNet

OK,找到代码后下载到本地再解压就好啦!

在这里插入图片描述

2. 用IDE打开代码文件

由于我用的是老师的电脑(虽然我自己电脑的配置不太行,但是老师电脑的配置还是可以滴,嘻嘻),所以跑项目的话就相当于在自己本地跑一样,就不用连远程服务器那么麻烦啦~
由于我一直用的是Pycharm,所以直接用Pycharm打开项目文件夹就好了。

在这里插入图片描述

用Pycharm打开项目之后,首先我们先打开Readme哈,看看作者给我们留下来什么有用的提示。

(1)下载预训练模型参数

从Readme中可以看出我们首先得下载谷歌的 VIT 预训练模型参数,点开作者给的链接打开Google Cloud,打开之后的页面是这个样子滴:
Ps:如果这个网站进不去,emmm,你们懂得……可能需要……哈哈

在这里插入图片描述

点开图中红色框框的目录,里面就是我们需要的所有模型的参数,点进去之后的页面是这样的:

在这里插入图片描述

里面的这些.npz文件就是 VIT 预处理模型参数,我们都下载到本地就好了。下载到本地方式:右击上图中红色小框框的小箭头,点击“链接另存为……”,然后下载到本地指定的文件夹就好了。慢慢下载吧……Patience is key in life !

在这里插入图片描述

经过漫长的等待之后,终于所有的模型参数文件都下载好了,嘿嘿。

(2)下载数据集

这里的数据集是论文作者给出的数据集。我将数据集放到百度网盘里了,需要的话自取吧!
网盘链接:https://pan.baidu.com/s/1yy-fz1hWxSFkBnW-DDLNUA?pwd=zbbb
提取码:zbbb
下载好预训练模型参数文件和数据集后,将文件的路径按照作者给出的参考路径配置好,参考路径如下:

在这里插入图片描述

(3)配置环境

作者要求的环境是python=3.7,以及需要以下的包:

在这里插入图片描述
可能因为作者在写代码时比较早了,所以对应的torch和torchvision的版本都比较老,我这两个包没有和作者的版本对应,我觉得应该关系不大吧,毕竟高版本应该是兼容低版本的。那么在这里我和大家说一说该怎么从零创建一个环境来运行项目。

(1)首先在自己的电脑上安装anaconda(或者miniconda)
可以到anaconda的官网下载,anaconda网址:https://www.anaconda.com/
在这里插入图片描述
点击这里的下载就可以了,但是下载速度可能会比较缓慢~
所以也可以选择到国内的镜像站去下载,清华镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
从中选一个自己需要的就行了,比如说:

在这里插入图片描述
下载好以后选择好安装路径之后基本上都是“下一步”就行了,如果不会的话可以随便找个教学视频看一下就可以了。

(2)创建一个虚拟环境
在安装好anaconda后,进入anaconda prompt。
首先,创建一个虚拟环境:

conda create -n TransUNet python=3.7

这里的TransUNet是环境名称,根据自己需要改就行了。
然后下载torch,进到Pytorch的官网下载就行了,Pytorch网址:https://pytorch.org/get-started/locally/
找到自己需要的版本,然后在anaconda prompt中执行对应的命令行就行了:

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia

最后下载项目所需要的一些包:
首先可以设置conda的一些下载源。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

其次,再下载需要的包,尽量使用conda命令下载,不要使用conda和pip命令混合用,这样可能会导致包之间的版本冲突。

(3)在Pycharm中配置好对应的虚拟环境
这一步我就不细说了哈,b站的教学视频都挺多的~

(4)运行train.py代码

终于,不出意外的的话要出意外了 ,运行代码的时候报错了……
在这里插入图片描述
说实话,代码报的错我看不懂,哈哈~嗝,这时候我请教了我的组友和师兄。一开始是怀疑环境是不是有问题,于是我又将环境删了重新按照一样的步骤创建了一遍,然后重新运行代码,发现还是报出同样的错误,因此不是环境的问题。

在这里插入图片描述
然后在师兄的帮助下,以及在网上查阅了一些资料后总结出是路径的问题,因为作者给出的代码可能是在Linux系统上跑的,然而我的代码是在Windows系统上跑的,因此文件路径的斜杠会有不同。
参考博客:https://blog.csdn.net/qq_37278761/article/details/121493618
解决方法参考这篇博客就行啦~
但是,又遇到了一个新的错误:
在这里插入图片描述
一般网上的做法都是将num_workers设置成0,参考博客:https://blog.csdn.net/qq_37652891/article/details/123460932
但是我同时也找到一篇博客讲述了另一种方法,但是感觉有些麻烦,我就没有采取了,链接:https://www.cnblogs.com/applerun/p/15669615.html
最终,代码成功运行起来啦!!!

(5)运行test.py代码

终于,在运行完train.py之后,再运行test.py时又报错了,嘿嘿。真是妙蛙种子进了米奇妙妙屋——妙极了!

在这里插入图片描述
然后我又在网上找了一下原因,发现原因是作者给出的代码里train.py和test.py的max_interations、max_epochs和vit_name不一样!!!
train.py:

在这里插入图片描述

在这里插入图片描述

test.py:

在这里插入图片描述
在这里插入图片描述
所以将test.py中的这三个参数值和train.py中的参数值保持一致就可以了。
Ps:train.py和test.py中还有一个参数是is_pretrained,就是是否进行预训练,这个参数也要保持一致。

参考博客:https://blog.csdn.net/sinat_39385228/article/details/120011354?spm=1001.2014.3001.5501

有很多小伙伴想看文件结构图,前段时间太忙了,所以有很多家人们的私信和评论都没有回复,抱歉!!!现在将文件结构图在这里分享给大家吧。

在这里插入图片描述

3. 总结

因为我用的是老师的电脑(相当于本地跑代码),然而有很多友友们是通过连接远程Linux服务器运行代码,所以本篇博客的教程还是会有一点不一样。就是缺少了将远程Linux服务器和本地Pycharm连接的一个过程,如果大家需要的话,可以在评论区留言,我可以再写一篇关于Pycharm连接远程服务器的博客哈~ 看到这里,家人们不妨点个赞关注一波噻,阿里嘎多~

在这里插入图片描述

评论 91
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值