allennlp 为了数值稳定性,在logsumexp中停止梯度计算的技巧,

7qhs6swi  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(38)

Tensorflow在计算logsumexp时,为了数值稳定性原因,有代码阻止梯度传播。如果我们的代码能有类似的行为就更好了。不过我不确定pytorch是否允许这种事情。

相关代码:
allennlp/allennlp/nn/util.py
第554行:

max_score, _ = tensor.max(dim, keepdim=keepdim)

Tensorflow相关代码:https://github.com/tensorflow/tensorflow/blob/438604fc885208ee05f9eef2d0f2c630e1360a83/tensorflow/python/ops/math_ops.py#L1670-L1674

du7egjpx

du7egjpx1#

这意味着调用.detach(),我认为。不过,我不太确定这是否真的会影响到任何事情。

相关问题