源代码是基于shell脚本实现,由于我没接触过linux,所以本篇是在windows系统里基于pycharm终端git bash实现的
1.首先下载安装git,可参考此链接,博主写得非常详细
2.在pycharm终端配置Git Bash
进入pycharm:File->Setting->Tools->Application setting->设置Shell Path,也就是你安装的git路径下,打开bin,找到bash.exe,复制地址,ok应用
3.在Anaconda
的安装位置处,例如D:\Anaconda\etc\profile.d
,在profile.d
文件夹中“右击”选择“Open Git Bash Here”
4.输入下面代码,之后回车。(注意点之后有个空格!)
echo ". '${PWD}'/conda.sh" >> ~/.bashrc
5.之后进入pycharm终端,输入conda activate,就可以使用conda环境了,类似下图(这里还没创建该项目的环境,用其他示例)
6.项目地址链接 CoOp,根据 readme一步步复现,首先按照这里描述的说明 dassl 安装dassl和PyTorch。
7.之后,进入pycharm终端激活dassl环境
conda activate dassl
在CoOp/下运行pip install -r requirements.txt来安装CLIP所需的更多软件包
8.下载数据集,这里以Caltech101为例,从http://www.vision.caltech.edu/Image_Datasets/Caltech101/101_ObjectCategories.tar.gz下载101_ObjectCategories.tar.gz,并在caltech-101下提取该文件
9.从这个CoOp下载split_zhou_Caltech101.json,并把它放在caltech-101下
10.把caltech-101整个文件放到Git/path/to/datasets下,如图
11.以下面为例,输入指令运行代码
CLIP + CoOp (M=16, end):
- 1 shot:
bash scripts/coop/main.sh caltech101 rn50_ep50 end 16 1 False
- 2 shots:
bash scripts/coop/main.sh caltech101 rn50_ep100 end 16 2 False
- 4 shots:
bash scripts/coop/main.sh caltech101 rn50_ep100 end 16 4 False
- 8 shots:
bash scripts/coop/main.sh caltech101 rn50 end 16 8 False
- 16 shots:
bash scripts/coop/main.sh caltech101 rn50 end 16 16 False
12.运行成功,结果可在output文件下查看
13.实验完成后,可以使用parse_test_res.py计算平均结果,而不是手动查看日志文件
python parse_test_res.py output/caltech101/CoOp/rn50_16shots/nctx16_cscFalse_ctpend
然后,您将在终端中看到类似这样的内容