哈喽大家,我又来完成课程大作业啦,这次选的是下面这篇文章,复现一个花朵分类的代码:
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进行预测,结果展示如下:
差不多到这里就结束了,可以完成报告啦,谢谢观看~
版权归原作者 虾滑只能煮火锅 所有, 如有侵权,请联系我们删除。