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