Spec-Zone.ru › TensorFlow 2.9

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

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

Этот оператор предназначен только для обучения. Как правило, он является недооценкой полной функции потерь 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 Массив или список объектов, объединение которых вдоль измерения 0 имеет форму [число_классов, размер]. Вложения классов (возможно, фрагментированные).
biases Массив с формой [num_classes]. Смещения классов.
labels Массив типа int64 и формы [batch_size, num_true]. Классы-цели. Обратите внимание, что этот формат отличается от аргумента labels функции nn.softmax_cross_entropy_with_logits.
inputs Массив с формой [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 Имя операции (необязательно).
Возвращаемое значение
Массив размерности 1D, содержащий потери от примерного softmax для каждого примера.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/nn/sampled_softmax_loss

Spec-Zone.ru

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