Spec-Zone.ru › TensorFlow 2.4

tf.nn.sampled_softmax_loss

Просмотреть исходный код на GitHub

Вычисляет и возвращает потери обучения выборочной softmax.

tf.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'
)

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

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

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

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 Целое число. Количество классов, которые нужно случайным образом выбирать в каждой группе.
num_classes Целое число. Количество возможных классов.
num_true Целое число. Количество целевых классов на пример обучения.
sampled_values кортеж (sampled_candidates, true_expected_count, sampled_expected_count) возвращаемый функцией *_candidate_sampler. (если None, мы используем log_uniform_candidate_sampler)
remove_accidental_hits Булево значение. Удалять ли «случайные попадания», когда выборочный класс совпадает с одним из целевых классов. По умолчанию True.
seed Семена случайности для выборочного отбора кандидатов. По умолчанию None, что не устанавливает генератор случайных чисел уровня операции для выборочного отбора кандидатов.
name Имя операции (необязательно).
Возвращаемые значения
A batch_size 1-мерный тензор потерь выборочной softmax на пример.

© 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/r2.4/api_docs/python/tf/nn/sampled_softmax_loss

Spec-Zone.ru

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