Im выполняет задачу нейронной сети с функцией активации Sigmoid
. Мой вход в сеть - это изображение (MNIST
) и потому, что размер каждого изображения равен 28*28
. Когда мне нужно преобразовать их в вектор, у меня будет N*784
. Умножение этой большой матрицы с весовой матрицей дает большие положительные и отрицательные числа для весов, и я должен передать их функции Sigmoid
. Я использую expit()
как сигмоидную функцию, и моя проблема в том, что:Функция сигмоида для больших чисел в Python
номера до 30, полученные вблизи 1 в expit()
. например expit(28)
Результаты 0.99999999
и expit(29)
Результаты 1.0
и верхние 29
также получает 1
. Но мои новые манеры - верхние 30
, и из-за этого некоторые из них получают 1
и некоторые 0 в первом цикле обучения, и на самом деле никакого обучения вообще нет.
Что мне нужно делать? Sigmoid's
верхняя граница 29
? Я не могу изменить его? Мне нужно изменить измерение изображения, чтобы преодолеть это?
В какой версии на scipy вы используете? expit был численно неустойчивым до 0,14 (https://github.com/scipy/scipy/issues/3385) –
Я не знаю, два дня назад я установил его через pip. – Fcoder
проверить с помощью python -c 'import scipy; print (scipy .__ version__) «Я предполагаю, что вы используете выкуп Scipy, не так ли? –