Closed littttttlebird closed 3 years ago
假设teacher和student的hidden_size分别为d和d' 当d不等于d'时,利用student模型的fit_dense层,将d‘映射到和d一样的维度,使得student和teacher之间可以计算hidden_state loss。 但是当d和d'像当时,就可以不经过fit_dense映射直接计算hidden_state loss吧。但是代码里用了 if is_student判断,实际应该是判断d是否等于d'吧?
if is_student
fit_dense层的作用是将TinyBERT的维度从d‘映射到d,当然,用d' == d判断也可以达到这个目的。这里用is_student 判断是为了让学生模型无论是d’是否在等于d的情况下都做一次线性变换。
为什么d=d'时也要做一次变换呢?
Connecting to @chuanhuayang issue, a few questions about the fit dense matrix.
假设teacher和student的hidden_size分别为d和d' 当d不等于d'时,利用student模型的fit_dense层,将d‘映射到和d一样的维度,使得student和teacher之间可以计算hidden_state loss。 但是当d和d'像当时,就可以不经过fit_dense映射直接计算hidden_state loss吧。但是代码里用了
if is_student
判断,实际应该是判断d是否等于d'吧?