Функция log_sigmoid
Функция log_sigmoid применяется к тензору и вычисляет
натуральный логарифм от сигмоиды для каждого элемента.
Математически это выражение можно записать как
log(1 / (1 + exp(-x))). Такая форма вычислений
является более численно устойчивой, чем последовательный
вызов функций log и sigmoid, особенно
для больших по модулю значений. Первым параметром
функция принимает тензор, вторым - имя операции.
Синтаксис
tf.math.log_sigmoid(x, name=None)
Пример
Давайте вычислим логарифм сигмоиды для тензора с целочисленными значениями:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
res = tf.math.log_sigmoid(t)
print(res)
Результат выполнения кода:
tf.Tensor([-0.31326166 -0.12692802 -0.04858735 -0.01814993 -0.00671535], shape=(5,), dtype=float32)
Функция автоматически приводит целочисленный тензор
к типу float32 перед вычислениями.
Пример
Давайте вычислим логарифм сигмоиды для тензора с отрицательными значениями:
import tensorflow as tf
t = tf.constant([-1, -2, -3, -4, -5])
res = tf.math.log_sigmoid(t)
print(res)
Результат выполнения кода:
tf.Tensor([-1.3132616 -2.126928 -3.0485873 -4.01815 -5.0067153], shape=(5,), dtype=float32)
Для отрицательных значений результат близок к исходному числу, что подтверждает численную устойчивость функции.
Пример
Давайте применим функцию к двумерному тензору:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]])
res = tf.math.log_sigmoid(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[-0.31326166 -0.12692802 -0.04858735]
[-0.01814993 -0.00671535 -0.00247569]], shape=(2, 3), dtype=float32)