Spec-Zone.ru › TensorFlow 2.3

tf.nn.sampled_softmax_loss

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

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

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

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

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

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

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 статьи Жан и др., 2014 (pdf) для математического описания.

Примечание: при выполнении поиска вложениях weights и bias, будет использоваться стратегия разбиения "div". Поддержка других стратегий разбиения будет добавлена позже.
Аргументы
weights Массив типа Tensor формы [num_classes, dim], или список объектов Tensor , чье объединение по размерности 0 имеет форму [num_classes, dim]. Вложения классов (возможно, фрагментированные).
biases Массив типа Tensor формы [num_classes]. Смещения классов.
labels Массив типа Tensor и формы [batch_size, num_true]. Целевые классы. Обратите внимание, что этот формат отличается от аргумента labels функции nn.softmax_cross_entropy_with_logits.
inputs Массив типа 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 Имя операции (необязательно).
Возвращаемое значение
Массив 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/r2.3/api_docs/python/tf/nn/sampled_softmax_loss

Spec-Zone.ru

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