Spec-Zone.ru › TensorFlow 1.15

tf.compat.v2.nn.sampled_softmax_loss

Вычисляет и возвращает потери обучения выборочного софтмакса.

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

Это более быстрый способ обучения классификатора софтмакса для огромного числа классов.

Данная операция предназначена только для обучения. Как правило, это недооценка полной потери софтмакса.

Типичное применение — использование этого метода для обучения, а вычисление полной потери сигмоиды для оценки или инференции, как показано в следующем примере:

if mode == "train":
  loss = tf.nn.sampled_softmax_loss(
      weights=weights,
      biases=biases,
      labels=labels,
      inputs=inputs,
      ...)
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)

См. нашу Справочник по алгоритмам выборочного отбора кандидатов

Также см. раздел 3 Jean et al., 2014 (pdf) для математических формул.

Примечание: при выполнении поиска по вложениям в weights и bias, будет использоваться стратегия разбиения "div". Поддержка других стратегий разбиения будет добавлена позже.
Аргументы
weights A Tensor с формой [num_classes, dim], или список Tensor объектов, конкатенация которых вдоль измерения 0 имеет форму [num_classes, dim]. Вложения классов (возможно, фрагментированные).
biases A Tensor с формой [num_classes]. Смещения классов.
labels A Tensor типа int64 и формы [batch_size, num_true]. Целевые классы. Обратите внимание, что этот формат отличается от аргумента labels в nn.softmax_cross_entropy_with_logits.
inputs A Tensor с формой [batch_size, dim]. Активности прямого прохода входной сети.
num_sampled An int. Количество классов, которые случайным образом выбираются в каждом батче.
num_classes An int. Количество возможных классов.
num_true An int. Количество целевых классов на пример обучения.
sampled_values кортеж (sampled_candidates, true_expected_count, sampled_expected_count) возвращаемый функцией *_candidate_sampler. (если None, используется значение по умолчанию log_uniform_candidate_sampler)
remove_accidental_hits A bool. Удалять ли «случайные совпадения», где выбранный класс совпадает с одним из целевых классов. По умолчанию True.
seed случайное семя для выборочного отбора кандидатов. По умолчанию None, что не устанавливает случайное семя на уровне операции для выборочного отбора кандидатов.
name Имя операции (необязательно).
Возвращает
A batch_size 1-мерный тензор потерь выборочного софтмакса на пример.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/compat/v2/nn/sampled_softmax_loss

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API