Ваша функция реализована правильно, однако значение e
неверно.
Я бы рекомендовал импортировать math
и использовать оттуда предопределенную константу e
.
import math
def sigmoid(x):
return 1 / (1 + math.e ** -x) # mathematically equivalent, but simpler
И, соответственно, производную:
def sigmoid_derivative(a):
return a * (1 - a)
Где a
- скрытая активация с прямого прохода.
Кроме этого, я не вижу ничего плохого в вашей реализации.Так что если вы все еще получаете значения, которые вы не ожидаете после исправления, причина проблемы лежит в другом месте.