Spec-Zone.ru › TensorFlow 1.15

tf.contrib.nn.sampled_sparse_softmax_loss

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

tf.contrib.nn.sampled_sparse_softmax_loss(
    weights, biases, labels, inputs, num_sampled, num_classes, sampled_values=None,
    remove_accidental_hits=True, partition_strategy='mod',
    name='sampled_sparse_softmax_loss'
)

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

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

Общее применение заключается в использовании этого метода для обучения, а затем вычислении полной потери softmax для оценки или инференции. В этом случае вы должны установить partition_strategy="div" для согласованности двух потерь, как в примере ниже:

if mode == "train":
  loss = tf.nn.sampled_sparse_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)
  loss = tf.nn.sparse_softmax_cross_entropy_with_logits(
      labels=tf.squeeze(labels),
      logits=logits)

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

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

Аргументы
weights Матрица формы [num_classes, dim], или список объектов формы Tensor, конкатенация которых вдоль размерности 0 имеет форму [num_classes, dim]. Векторные представления классов (возможно, фрагментированные).
biases Вектор формы [num_classes]. Смещения классов.
labels Число типа int64 и формы [batch_size, 1]. Индекс единственного целевого класса для каждой строки логарифмов. Обратите внимание, что этот формат отличается от аргумента labels функции nn.sparse_softmax_cross_entropy_with_logits.
inputs Вектор формы [batch_size, dim]. Активации на входной сети.
num_sampled Целое число. Количество случайных классов, которые нужно выбирать в каждой группе.
num_classes Целое число. Общее количество возможных классов.
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 Имя операции (необязательно).
Возвращаемое значение
1-мерный вектор batch_size со значениями потерь выборочной 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/r1.15/api_docs/python/tf/contrib/nn/sampled_sparse_softmax_loss

Spec-Zone.ru

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