Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

confusion #6

Open
brucedoll opened this issue Apr 23, 2022 · 12 comments
Open

confusion #6

brucedoll opened this issue Apr 23, 2022 · 12 comments
Labels
bug Something isn't working enhancement New feature or request help wanted Extra attention is needed

Comments

@brucedoll
Copy link

作者好,想问下那个discrepancy loss是作用于domain-specific features,在classifier分类之前吗?而不是分类器四分类softmax后进行作差计算的吗?

@VoiceBeer
Copy link
Owner

VoiceBeer commented Apr 23, 2022

Hi, 是softmax之后算disc. loss的,具体可以看这里code

@brucedoll
Copy link
Author

谢谢作者大大回复,就是想确认一下paper里的discrepancy loss是不是作用于domain-specific features、是在classifier之前呢?discrepancy loss是不是也可以作用于classifier分类后的结果呢

@VoiceBeer
Copy link
Owner

Hi,是classifier之后计算disc. loss的

@brucedoll
Copy link
Author

谢谢作者回复,可是code里面是F.softmax(data_tgt_DSFE[mark], dim=1)和F.softmax(data_tgt_DSFE[i], dim=1)作差的、没有经过classifier...

@VoiceBeer
Copy link
Owner

Hi! 我刚去检查了下代码和论文,设计的时候确实是discrepancy loss是在classifier之后计算的,但是代码实现部分,也就是上面我发的地方,确实写错了很尴尬:rofl:。我记得之前还在思考为什么这个disc. loss没有直觉上那么有效果,真是出了大乌龙。因为我现在没有计算资源了,这些代码难以重新跑一次更新数据,如果可以的话,且你感兴趣的话,可以修改一下后提交一个PR:see_no_evil:。这是我的疏忽大意,实在抱歉。总之现在的代码是在classifier之前那一层拉近了feature的分布了,不是很确定是否classifier之后效果会不会提升很多。

@brucedoll
Copy link
Author

谢谢作者回复和解惑!作者大大的这篇论文里想法非常具有启发性,我学到了很多!

@VoiceBeer
Copy link
Owner

Hi!不不不是你的issue才让我发现了这个错误,我应该感谢你才对:joy_cat:

@VoiceBeer VoiceBeer added bug Something isn't working enhancement New feature or request help wanted Extra attention is needed labels Apr 23, 2022
@VoiceBeer
Copy link
Owner

@brucedoll 你要不要把出问题的地方改一下,也就是改成过classifier之后再去算disc. loss,结果的话我以后再加好了,现在没数据集没服务器我也没法加。或者你直接开个PR我来改下

@18637838358
Copy link

作者大大你好,想问一下上面说的问题修改好了吗

@VoiceBeer
Copy link
Owner

@18637838358 哈喽,这个问题在库里还没改,你可以在loss计算的时候改一下使用的特征

@hl990515
Copy link

想问一下作者大大,这个issue改的话是这样改的吗

discrepency loss

        for i in range(len(data_tgt_DSFE)):
            if i != mark:
                disc_loss  = torch.mean(torch.abs(
                    F.softmax(eval(DSC_name)(data_tgt_DSFE[mark]), dim=1) -
                    F.softmax(eval(DSC_name)(data_tgt_DSFE[i]), dim=1)
                ))

就是用DSC这个分类器对目标域数据分类之后再计算loss呢,我改完之后准确率骤降,不知道是不是理解错了┭┮﹏┭┮

@VoiceBeer
Copy link
Owner

@hl990515 哈喽,这个repo已经过了很久了我也没在做这方面的工作所以尽量回答你。我记得在论文里disc_loss是用来保证不同的subject出来的结果都尽量是一样的,所以其实感觉用经过分类器前的vector或者经过分类器后的应该都行。至于你现在尝试的为什么准确率这么低的原因,我手头已经没有资源和数据集验证这个repo,所以没办法测试评估告诉你原因抱歉。我现在也不太确定这个issue前面说的到底对不对,可能这个代码写得是对的,但是论文里我disc loss描述的部分是错的,所以一直留着这个issue给大家也提醒一下。如果你感兴趣的话可以自己再研究下,现在repo写的其实也是对的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants