Spec-Zone.ru › TensorFlow

tf.compat.v1.nn.sampled_softmax_loss

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

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
)

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

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

Распространённый случай использования — применение этого метода для обучения и вычисление полной потери софтмакса для оценки или вывода. В этом случае вы должны установить 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). Также см. раздел 3 (Jean et al., 2014) для математических формул.

Аргументы
weights Массив формы [num_classes, dim] или список объектов Tensor, чьё конкатенация по размерности 0 имеет форму [num_classes, dim]. Векторные эмбеддинги классов (возможно, распределённые).
biases Массив формы [num_classes]. Смещения классов.
labels 1-мерный тензор типа 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.
partition_strategy Строка, определяющая стратегию разбиения, актуальна если len(weights) > 1. В данный момент поддерживаются "div" и "mod". По умолчанию "mod". Смотрите tf.nn.embedding_lookup для получения дополнительной информации.
name Имя операции (необязательно).
seed Зерно для генерации случайных чисел при выборке кандидатов. По умолчанию None, что не устанавливает операторное зерно для выборки кандидатов.
Возвращаемое значение
1-мерный тензор, содержащий потери сэмплированного софтмакса для каждого примера.
Ссылки
Об использовании очень большого словаря целевых слов для машинного перевода: Jean et al., 2014 (pdf)

© 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/api_docs/python/tf/compat/v1/nn/sampled_softmax_loss

Spec-Zone.ru

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