【发布时间】:2020-08-03 05:12:37
【问题描述】:
我正在尝试访问 DistilBERT 中关于第一层中每个注意力权重的损失梯度。当requires_grad=True 时,我可以通过以下代码访问输出权重矩阵的计算梯度值
loss.backward()
for name, param in model.named_parameters():
if name == 'transformer.layer.0.attention.out_lin.weight':
print(param.grad) #shape is [768,768]
其中model 是加载的 distilbert 模型。
我的问题是如何获得关于 [SEP] 或 [CLS] 或其他令牌注意力的梯度?我需要它在以下链接中重现有关“注意 [SEP] 的基于梯度的特征重要性估计”的图:
https://medium.com/analytics-vidhya/explainability-of-bert-through-attention-7dbbab8a7062
以下出于相同目的提出了类似的问题,但这不是我的问题: BERT token importance measuring issue. Grad is none
【问题讨论】:
标签: pytorch transformer attention-model huggingface-transformers bert-language-model