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