Pytorch torch.nn.functional.gumbel_softmax的输入

Pytorch torch.nn.functional.gumbel_softmax的输入,pytorch,softmax,Pytorch,Softmax,假设我有一个名为attn_weights的张量,大小为[1,a],其中的条目表示给定查询和| a |键之间的注意权重。我想使用torch.nn.functional.gumbel_softmax选择最大的一个 我发现将参数描述为logits-[…,num_features]非规范化日志概率。我想知道我是否应该在将其传递到gumbel\u softmax之前获取attn\u权重的log?我发现Wiki定义了logit=lg(p/1-p),这与logrithm不同。我想知道我应该把哪个传递给函数 此

假设我有一个名为
attn_weights
的张量,大小为[1,a],其中的条目表示给定查询和| a |键之间的注意权重。我想使用
torch.nn.functional.gumbel_softmax
选择最大的一个

我发现将参数描述为logits-[…,num_features]非规范化日志概率。我想知道我是否应该在将其传递到
gumbel\u softmax
之前获取
attn\u权重的
log
?我发现Wiki定义了
logit=lg(p/1-p)
,这与logrithm不同。我想知道我应该把哪个传递给函数

此外,我想知道如何在
gumbel_softmax
中选择
tau
,有什么指导原则吗

我想知道在将其传递到
gumbel\u softmax
之前,我是否应该获取
attn\u权重的
log

如果
attn_weights
是概率(总和为1;例如,softmax的输出),则为是。否则,不会

我想知道如何在
gumbel_softmax
中选择
tau
,有什么指导原则吗

通常,它需要调整。文档中提供的参考资料可以帮助您做到这一点

发件人:

  • 图1,标题:

    。。。(a) 对于低温(τ=0.1,τ=0.5),Gumbel Softmax随机变量的预期值接近具有相同对数的分类随机变量的预期值。随着温度的升高(τ=1.0,τ=10.0),预期值在各类别上趋于均匀分布

  • 第2.2节第2段(重点):

    虽然Gumbel Softmax样本是可微的,但它们与非零温度下相应类别分布的样本并不相同。对于学习,在小温度和大温度之间存在折衷,小温度下的样本接近一个热点,但梯度的变化很大,和大温度下的样本平滑,但梯度的变化很小(图1)在实践中,我们从高温开始,然后退火到一个小但非零的温度

  • 最后,它们提醒读者tau是可以学习的:

    如果τ是一个学习参数(而不是通过固定参数进行退火 附表),该方案可解释为熵正则化(Szegedy et al.,2015;Pereyra et al.,2016),其中Gumbel Softmax分布可在训练过程中自适应调整建议样本的“置信度”


我很快会仔细检查这篇论文的