复现论文:DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization

论文:[2403.16697] DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization

github:

TYLfromSEU/DPStyler: DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization

论文:

这篇论文还是在PromptStyler:Prompt-driven Style Generation for Source-free Domain Generalization基础上对一些架构进行修改的。

Contribution

Style Generation Module:

dynamically refresh style by regenerating all style word vectors including Random and StyleMix between epochs.(randomly select one method)

Style Removal Module:

propose a domain uncertainty loss after encoder, to reduce specific style information and learn domain-invariant features

Model Ensemble:inference stage

for each text template, train a model and each model is involved in the inference process

Because introducing more randomness into the training process

大致代码流程

复现结果

|-----------|------------|------------|------------|------------|------------|
| | PACS | VLCS | OfficeHome | DomainNet | avg |
| ResNet-50 | 92.1__-1.5 | 81.4__-2.1 | 70.5__-2.0 | 45.5__-2.5 | 72.4__-2.0 |
| ViT-B/16 | 96.6__-0.5 | 80.8__-3.2 | | 56.9__-2.0 | |

PACS:

|-----------|--------------|------------|---------|------------|------------|
| | Art Painting | Cartoon | Photo | Sketch | avg |
| ResNet-50 | 92.7__-1.3 | 96.4__+1.1 | 99.6__0 | 79.6__-5.9 | 92.1__-1.5 |
| ViT-B/16 | 97.6__-0.1 | 99.2__+0.3 | 99.9__0 | 89.8__-2.1 | 96.6__-0.5 |

ResNet-50:

92.4 96.5 99.6 78.4

93.4 96.2 99.5 81.7

92.2 96.5 99.6 78.6

ViT-B/16:

97.6 99.3 99.9 89.0

97.6 99.1 99.9 90.8

97.6 99.2 99.9 89.6

VLCS:

|-----------|---------|------------|------------|------------|------------|
| VLCS | Caletch | LableMe | SUN09 | VOC2007 | avg |
| ResNet-50 | 100__0 | 65.0__-8.3 | 73.9__+2.1 | 86.5__-2.5 | 81.4__-2.1 |
| ViT-B/16 | 100__0 | 59.7__-9.4 | 80.4__+4.1 | 82.9__-7.6 | 80.8__-3.2 |

ResNet-50:

100 67.9 87.2 74.2 82.325

100 62.2 85.7 73.0 80.225

100 64.4 86.7 74.4 81.375

81.304

ViT-B/16:

100 62.4 88.5 77.6 82.125

100 61.1 83.1 75.5 79.925

100 55.7 77 88 80.175

80.7417

Office-Home:

|-----------------|------------|------------|------------|------------|------------|
| Office-Home | Art | Clipart | Product | Real World | avg |
| ResNet-50 | 72.3__-1.3 | 49.1__-2.1 | 78.8__-3.3 | 81.6__-1.3 | 70.5__-2.0 |
| ViT-B/16 | | | | | |

ResNet-50:

72.2 49 78.5 81.5

72.4 48.9 78.6 81.5

72.4 49.3 79.3 81.7

ViT-B/16:

DomainNet:

|---------------|------------|------------|------------|------------|------------|------------|------------|
| DomainNet | Clipart | Infograph | Painting | Quickdraw | Real | Sketch | avg |
| ResNet-50 | 51.6__-3.8 | 40.6__-0.9 | 53.4__-2.6 | 6.7__-0.4 | 73.4__-4.1 | 47.3__-2.4 | 45.5__-2.5 |
| ViT-B/16 | 68.6__-2.7 | 49.5__-1.1 | 65.3__-1.5 | 15.8__-0.4 | 80.7__-3.0 | 61.7__-2.7 | 56.9__-2.0 |

ResNet-50:

51.5 40.7 53.5 6.7 73.6 47.3

51.7 40.4 53.4 6.7 73.3 47.3

51.5 40.7 53.4 6.8 73.2 47.4

ViT-B/16

68.7 49.6 65.3 15.9 80.8 61.8

68.4 49.4 65.2 15.9 80.6 61.6

68.8 49.5 65.3 15.7 80.8 61.7

报错:

1、ERROR: Ignored the following versions that require a different python version:

23.10.0 Requires-Python >=3.8; 23.10.1 Requires-Python >=3.8; 23.11.0 Requires-Python >=3.8; 23.12.0 Requires-Python >=3.8; 23.12.1 Requires-Python >=3.8; 23.7.0 Requires-Python >=3.8; 23.9.0 Requires-Python >=3.8; 23.9.1 Requires-Python >=3.8; 24.1.0 Requires-Python >=3.8; 24.1.1 Requires-Python >=3.8; 24.10.0 Requires-Python >=3.9; 24.1a1 Requires-Python >=3.8; 24.2.0 Requires-Python >=3.8; 24.3.0 Requires-Python >=3.8; 24.4.0 Requires-Python >=3.8; 24.4.1 Requires-Python >=3.8; 24.4.2 Requires-Python >=3.8; 24.8.0 Requires-Python >=3.8 ERROR: Could not find a version that satisfies the requirement clip==1.0 (from versions: 0.0.1, 0.1.0, 0.2.0) ERROR: No matching distribution found for clip==1.0 failed CondaEnvException: Pip failed

原因:直接使用作者github上面的environment.yml文件发生报错。里面的配置有的用python3.7,有的用3.8很混乱。搞不懂作者是怎么配置的。

但是使用我之前配置的虚拟环境也可以这场运行这篇论文的代码。

链接:zhanghr2001/PromptTA: Source-free Domain Generalization

这是我之前复现这篇论文的环境,根据readme,配置到requirement.txt就可以。

2、连接超时Connection timed out'

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='drive.google.com', port=443): Max retries exceeded with url: /uc?id=1gkbf_KaxoBws-GWT3XIPZ7BnkqbAxIFa (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f20626e8990>: Failed to establish a new connection: [Errno 110] Connection timed out'))

原因:要在作者给的github上的链接上面下载数据集,我用的之前的数据集,有一些问题。

3、ModuleNotFoundError: No module named 'clip'

命令:

pip install clip

pip install openai-clip

相关设置

1、数据集和模型名称设置

数据集:

PACS VLCS office_home_dg domainnet:6个域文件+split文件夹(每个域的_train.txt和_test.txt)

模型名称:NET=resnet50_clip

vitb16_clip

vitl14_clip

2、运行命令

复现DPStyler命令:

sh run_clip_pacs.sh

sh run_clip_vlcs.sh

sh run_clip_office_home.sh

sh run_clip_domainnet.sh

这个作者还提供了复现PromptStyler的代码:

这个作者复现PromptStyler命令:

sh run_clip_pacs_ps.sh

sh run_clip_vlcs_ps.sh

sh run_clip_office_home_ps.sh

sh run_clip_domainnet_ps.sh

3、tensorboard命令查看

tensorboard --logdir ./output/vlcs/NS80_lr5_arcface_5_0.5_E100_resnet50_clip_R_wohead/seed3/tensorboard --load_fast true --port 6007

若显示端口被占用再加上 --load_fast true --port 6007

相关推荐
叫我:松哥4 小时前
python案例:基于python 神经网络cnn和LDA主题分析的旅游景点满意度分析
人工智能·python·神经网络·数据挖掘·数据分析·cnn·课程设计
2202_756749695 小时前
01 基于sklearn的机械学习-机械学习的分类、sklearn的安装、sklearn数据集及数据集的划分、特征工程(特征提取与无量纲化、特征降维)
人工智能·python·机器学习·分类·sklearn
王者鳜錸5 小时前
PYTHON从入门到实践-18Django从零开始构建Web应用
前端·python·sqlite
冗量6 小时前
PPT自动化 python-pptx - 8: 文本(text)
python·自动化·powerpoint
超级晒盐人6 小时前
用落霞归雁的思维框架推导少林寺用什么数据库?
java·python·系统架构·学习方法·教育电商
AI_RSER7 小时前
第一篇:【Python-geemap教程(三)上】3D地形渲染与Landsat NDVI计算
开发语言·python·3d·信息可视化·遥感·gee
WSSWWWSSW7 小时前
Python编程基础与实践:Python循环结构基础
开发语言·python
im_AMBER7 小时前
学习日志25 python
开发语言·python·学习
Blossom.1188 小时前
基于深度学习的医学图像分析:使用DeepLabv3+实现医学图像分割
人工智能·python·深度学习·yolo·目标检测·机器学习·迁移学习
花酒锄作田10 小时前
[python]基于动态实例的命令处理设计
python