复现论文: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

相关推荐
PNP Robotics1 分钟前
PNP机器人分享Frankal机器人等具身案例开发和实践
大数据·python·学习·机器人·开源
sin°θ_陈6 分钟前
CVPR 2026的3DGS卷到什么地步?工程语义上探:BrepGaussian如何打通图像到CAD的最后一公里?(Part III 1-3)
python·深度学习·算法·机器学习·3d·webgl
Fairy要carry8 分钟前
面试-Agent如何压缩上下文
python
chushiyunen13 分钟前
python3和python2的区别
开发语言·python
张张123y14 分钟前
AI Agent Memory:从理论到实战,掌握长短期记忆的核心技术【2】
人工智能·python·langchain·transformer
漫随流水15 分钟前
旅游推荐系统(基于用户的协同过滤recommendation.py)
python·django·旅游·协同过滤
沐硕15 分钟前
Dietify 智能饮食推荐系统全解析 —— 当协同过滤遇上营养科学,构建你的私人饮食管家
spring boot·python·fastapi·多目标优化·饮食推荐·改进协同过滤
欣然~26 分钟前
基于Python的自动化数据采集与语音播报系统设计与实现
python
小付爱coding27 分钟前
跟着官网学LangChain【第02章:提示词和消息】
windows·python·langchain
菜鸡儿齐3 小时前
Unsafe方法学习
java·python·学习