log_softmax#
- scipy.special.log_softmax(x, ось=None)[источник]#
Вычислить логарифм функции softmax.
В принципе:
log_softmax(x) = log(softmax(x))
но с использованием более точной реализации.
- Параметры:
- xarray_like
Входной массив.
- осьint или кортеж ints, опционально
Ось для вычисления значений. По умолчанию None, и softmax будет вычислен по всему массиву x.
- Возвращает:
- sndarray или скаляр
Массив с той же формой, что и x. Экспонента результата будет суммироваться до 1 вдоль указанной оси. Если x является скаляром, возвращается скаляр.
Примечания
log_softmaxболее точный, чемnp.log(softmax(x))с входами, которые делаютsoftmaxнасыщение (см. примеры ниже).Добавлено в версии 1.5.0.
log_softmaxимеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окруженияSCIPY_ARRAY_API=1и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).Библиотека
CPU
GPU
NumPy
✅
н/д
CuPy
н/д
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
✅
н/д
См. Поддержка стандарта array API для получения дополнительной информации.
Примеры
>>> import numpy as np >>> from scipy.special import log_softmax >>> from scipy.special import softmax >>> np.set_printoptions(precision=5)
>>> x = np.array([1000.0, 1.0])
>>> y = log_softmax(x) >>> y array([ 0., -999.])
>>> with np.errstate(divide='ignore'): ... y = np.log(softmax(x)) ... >>> y array([ 0., -inf])