为什么TensorFlow的采样softmax损失在采样类上停止了梯度?

时间:2018-01-29 18:03:44

标签: tensorflow gradient softmax loss

TensorFlow的采样丢失函数nce_losssampled_softmax_loss的主干是tensorflow.python.ops.nn_impl _compute_sampled_logits中称为_compute_sampled_logits的<{3}}。

_compute_sampled_logits作为输入:

  • 最后一层的重量和偏差,
  • 输出标签
  • 最后一层输入的输入
  • 输出图层的采样值

并仅返回请求的采样标签的logits和标签。

sampled, true_expected_count, sampled_expected_count = ( array_ops.stop_gradient(s) for s in sampled_values) 中执行的第一个(helper function)操作之一是

const keys = ["A1", "B1", "C1"]

const obj = {}

keys.forEach((key) => {
  const subKey = key[0]
  obj[subKey] = key
})

// obj = { A: A1, B: B1, C: C1 }

如果我正确地读取它,这条线似乎会阻止渐变回到采样值。

我的问题是:不应该停止渐变回流通过非采样值而不是采样值?为什么我们要停止从采样值回流的渐变? `

0 个答案:

没有答案