Я хочу знать, что делает функция tenorflow sparse_softmax_cross_entropy_with_logits математически. Но я не могу найти происхождение кодирования. Вы можете мне помочь?Где исходное кодирование функции sparse_softmax_cross_entropy_with_logits в тензорном потоке
ответ
В головной версии (на сегодняшний день) вы можете найти эту функцию в строке https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/nn_ops.py # 424.
Комментарий говорит:
Измеряется вероятность ошибки в дискретных задачах классификации в которых классы являются взаимоисключающими (каждая запись точно один класс). Например, каждое изображение CIFAR-10 помечено одним и только одной меткой: изображение может быть собакой или грузовиком, но не обоими.
Наиболее важной частью реализации является here начиная с линии 132.
Этот функтор вызывается kernel implementation.
Он использует не очень хорошо документированную функцию Eigen, называемых генераторами, которые позволяют писать довольно гибкий код и скомпилировать его как для CPU, так и для nvcc для графического процессора.
sparse_softmax_cross_entropy_with_logits эквивалентно численно стабильной версии следующим образом:
-1. * tf.gather(tf.log(tf.nn.softmax(logits)), target)
, или, в более "читаемым" Numpy-кода:
-1. * np.log(softmax(logits))[target]
где softmax(x) = np.exp(x)/np.sum(np.exp(x))
.
То есть, он вычисляет softmax предоставленных логитов, берет его журнал для извлечения лог-вероятностей и разрезает логарифмические вероятности для получения лог-вероятности цели.
Однако он делает это численно устойчивым способом (здесь может быть несколько ошибок) путем добавления небольших значений к некоторым из операций. Это означает, что вычисление вышеописанной версии приведет лишь приблизительно к тем же значениям, что и nn.sparse_softmax_cross_entropy_with_logits
(выполнение некоторых тестов показало, что разница последовательно меньше 2e-6).
- 1. Где gen_math_ops скрипт в тензорном потоке?
- 2. Запись пользовательской функции стоимости в тензорном потоке
- 3. Неверный вывод функции предсказания в тензорном потоке
- 4. NaN от sparse_softmax_cross_entropy_with_logits в Tensorflow
- 5. Пакетная нормализация в тензорном потоке
- 6. CUDA_ERROR_OUT_OF_MEMORY в тензорном потоке
- 7. Как реализовать взвешенную кросс-энтропийную потерю в тензорном потоке с использованием sparse_softmax_cross_entropy_with_logits
- 8. Внешнее изделие в тензорном потоке
- 9. Функция индекса() в тензорном потоке?
- 10. Уплотнение партии в тензорном потоке
- 11. функция разворота в тензорном потоке?
- 12. Bilinear upsample в тензорном потоке?
- 13. Циклическая потеря в тензорном потоке
- 14. Дублируйте сеть в тензорном потоке
- 15. Пользовательский отсева в тензорном потоке
- 16. RNN & партии в тензорном потоке
- 17. Реализация MLP в тензорном потоке
- 18. Как Argsort в тензорном потоке?
- 19. входной конвейер в тензорном потоке
- 20. Сохранение модели в тензорном потоке
- 21. Проблема дозирования в тензорном потоке
- 22. Невозможно найти «gen_training_ops» в тензорном потоке GitHub
- 23. Функция, аналогичная функции nu.Identity()() в Lua в тензорном потоке
- 24. Поезд только некоторых переменных в тензорном потоке
- 25. Как определить условие в тензорном потоке?
- 26. Как реализовать скользящее окно в тензорном потоке?
- 27. Что делает tf.nn.conv2d в тензорном потоке?
- 28. Применение предопределенной функции для пакетной обработки в тензорном потоке
- 29. Как читать строку и длинные функции в тензорном потоке
- 30. Не удается прочитать изображение в тензорном потоке