В чем разница в реализации численно стабильной сигмоидальной функции и функции, реализованной в TensorFlow?
Я получаю разные результаты при реализации этих двух функций sigmoid()
и tf.nn.sigmoid()
(или tf.sigmoid()
).Первый дает nan
и очень плохую точность (около 0,93%), а второй дает очень хорошую точность (около 99,99%).
Дана численно устойчивая сигмовидная функция sigmoid()
.по:
def sigmoid(z):
return tf.where(z >= 0, 1 / (1 + tf.exp(-z)), tf.exp(z) / (1 + tf.exp(z)))
Я ожидаю получить одинаковые результаты (точность) для обоих подходов, будь то тот, который реализован TensorFlow, или тот, который создан с нуля sigmoid()
.
Примечание : я протестировал две функции tf.sigmoid
и sigmoid()
с одной и той же моделью.