0


【代码复现训练】Vision Transformer(ViT)

哈喽大家,我又来完成课程大作业啦,这次选的是下面这篇文章,复现一个花朵分类的代码:

csdn文章链接:Vision Transformer(ViT)论文解读与代码实践(Pytorch)_vision transformer enconder-CSDN博客

一、配置环境

打开Anaconda prompt,使用conda命令新建一个环境:(关闭代理)

conda create -n flowers python=3.7

然后,遇到了报错……

搜了一下发现是清华源的设置有问题,但是试了网上的各种换源的方法都不行,索性将Anaconda的源恢复为默认:(参考链接:https://www.cnblogs.com/tianlang25/p/12433025.html)

conda config --remove-key channels

然后再试了试:

好像建好了……然后进入flowers虚拟环境安装pytorch,这里由于我的cuda版本是11.2,查看torch官网后发现没有cuda11.2版本对应的torch下载,所以参考下面这篇文章的方法:cuda11.2版本的对应安装的pytorch版本_cuda11.2对应的pytorch-CSDN博客

图中第二个就是我下载的whl文件。然后在anaconda中激活虚拟环境,再进行安装【下面是我的犯蠢记录……】

可以看到torch已经装好了:

用同样的方法安装torchvision和torchaudio:(我不懂它为什么要给我下载torch1.9.1)

安装好之后我们就打开pycharm,然后为项目配置这个flowers环境:

1、打开“设置”,找到“项目:vision-transformer”-“Python解释器”;

2、点击“添加解释器”-“添加本地解释器”,环境选择“现有”,然后在anaconda3/envs下找到flowers文件夹,点开找到里面的pytho.exe,这就是“基础解释器”,然后“应用-确定”即可。

二、运行代码

运行train.py时报错:

在终端使用pip install命令安装tensorboard:

pip install tensorboard

然后又报错了:

发现是代理忘记关了……emmmmm……关掉之后再来,成功了…………:

安装好之后再运行train.py文件,出现新的报错:

在csdn上搜了一下如何解决,采用这篇文章的方法:

Python AttributeError: module ‘distutils‘ has no attribute ‘version‘_attributeerror: module 'distutils' has no attribut-CSDN博客

先试一下更新pytorch的方法:

然后运行,发现又出现了几个包没有下载,需要安装:pip insatll xxx 。安装好之后出现新的报错:

发现是路径没写对地方导致的……【笨死我蒜了,谢谢hxy女士】 datapath和权重文件的路径应该写在default后面……,正确写法如下:

# 数据集所在根目录
parser.add_argument('--data-path', type=str,
                        default="flower_photos")
# 预训练权重路径,如果不想载入就设置为空字符
    parser.add_argument('--weights', type=str, default='jx_vit_base_patch16_224_in21k-e5005f0a.pth',
                        help='initial weights path')

按照原文的教程,只需要改这两处就ok,然后就可以运行代码了:

跑完再更新……

-------------------------------------------【2024.07.14更新】分割线-------------------------------------------

代码跑完之后生成了一个runs文件夹:

然后用tensorboard打开,可以看到结果:

在终端输入启动tensorboard命令:【runs是跑完代码后生成的文件夹名称】

tensorboard --logdir runs

然后使用predict.py进行预测,结果展示如下:

差不多到这里就结束了,可以完成报告啦,谢谢观看~


本文转载自: https://blog.csdn.net/qq_50993545/article/details/140235017
版权归原作者 虾滑只能煮火锅 所有, 如有侵权,请联系我们删除。

“【代码复现训练】Vision Transformer(ViT)”的评论:

还没有评论