當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.compat.v1.nn.sampled_softmax_loss用法及代碼示例


計算並返回采樣的 softmax 訓練損失。

用法

tf.compat.v1.nn.sampled_softmax_loss(
    weights, biases, labels, inputs, num_sampled, num_classes, num_true=1,
    sampled_values=None, remove_accidental_hits=True,
    partition_strategy='mod', name='sampled_softmax_loss',
    seed=None
)

參數

  • weights 形狀為 [num_classes, dim]TensorTensor 對象的列表,其沿維度 0 的連接具有形狀 [num_classes, dim]。 (possibly-sharded) 類嵌入。
  • biases 形狀為 [num_classes]Tensor 。階級偏見。
  • labels 類型為 int64 和形狀為 [batch_size, num_true]Tensor 。目標類。請注意,此格式不同於 nn.softmax_cross_entropy_with_logitslabels 參數。
  • inputs 形狀為 [batch_size, dim]Tensor 。輸入網絡的前向激活。
  • num_sampled 一個 int 。每批隨機抽樣的類數。
  • num_classes 一個 int 。可能的類數。
  • num_true 一個 int 。每個訓練示例的目標類數。
  • sampled_values *_candidate_sampler 函數返回的 (sampled_candidates , true_expected_count , sampled_expected_count) 元組。 (如果沒有,我們默認為 log_uniform_candidate_sampler )
  • remove_accidental_hits 一個bool。是否刪除"accidental hits",其中采樣類等於目標類之一。默認為真。
  • partition_strategy 指定分區策略的字符串,如果 len(weights) > 1 則相關。目前支持"div""mod"。默認為 "mod" 。有關詳細信息,請參閱tf.nn.embedding_lookup
  • name 操作的名稱(可選)。
  • seed 候選抽樣的隨機種子。默認為 None,它不會為候選采樣設置 op-level 隨機種子。

返回

  • per-example 的 batch_size 一維張量采樣了 softmax 損失。

這是在大量類上訓練 softmax 分類器的更快方法。

此操作僅用於訓練。它通常低估了完整的 softmax 損失。

一個常見的用例是使用這種方法進行訓練,並計算完整的 softmax 損失以進行評估或推理。在這種情況下,您必須設置 partition_strategy="div" 以使兩個損失保持一致,如下例所示:

if mode == "train":
  loss = tf.nn.sampled_softmax_loss(
      weights=weights,
      biases=biases,
      labels=labels,
      inputs=inputs,
      ...,
      partition_strategy="div")
elif mode == "eval":
  logits = tf.matmul(inputs, tf.transpose(weights))
  logits = tf.nn.bias_add(logits, biases)
  labels_one_hot = tf.one_hot(labels, n_classes)
  loss = tf.nn.softmax_cross_entropy_with_logits(
      labels=labels_one_hot,
      logits=logits)

請參閱我們的候選抽樣算法參考 (pdf)。另請參閱(Jean 等人,2014 年)的第 3 節了解數學。

參考:

關於使用非常大的目標詞匯進行神經機器翻譯:Jean 等人,2014 (pdf)

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.nn.sampled_softmax_loss。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。