SimCSE 如何独立进行两次 dropout

Posted

技术标签:

【中文标题】SimCSE 如何独立进行两次 dropout【英文标题】:How does SimCSE do dropout twice indepently 【发布时间】:2021-12-23 03:10:00 【问题描述】:

如何将一个输入句子独立地传递给 bert 两次 dropout?

这是我到目前为止所尝试的,输出是相同的。

bert = AutoModel.from_pretrained('bert-base-cased')
tokenizer = AutoTokenizer.from_pretrained('bert-base-cased')
sent_dict = tokenizer('Some weights of the model checkpoint at bert-base-cased were not used when initializing BertModel', return_tensors='pt')

bert(**sent_dict).pooler_output == bert(**sent_dict).pooler_output

【问题讨论】:

【参考方案1】:

我忘记了 model.train() :( Dropout 只在训练模式下有效

【讨论】:

以上是关于SimCSE 如何独立进行两次 dropout的主要内容,如果未能解决你的问题,请参考以下文章

EMNLP 2021SimCSE:句子嵌入的简单对比学习 && CVPR 2021理解对比学习损失函数及温度系数

simCSE:论文解读

基于SimCSE和Faiss的文本向量检索实践

恒源云_[SimCSE]:对比学习,只需要 Dropout?

恒源云_[SimCSE]:对比学习,只需要 Dropout?

SimCSE:NLP中的对比学习