Я пытаюсь построить нейронную сеть для базы данных Mnist.При вычислении функции softmax я получаю сообщение об ошибке с теми же концами, что и «Вы не можете сохранить число с плавающей запятой такого размера»
код выглядит следующим образом:
def softmax(vector): # REQUIRES a unidimensional numpy array
adjustedVals = [0] * len(vector)
totalExp = np.exp(vector)
print("totalExp equals")
print(totalExp)
totalSum = totalExp.sum()
for i in range(len(vector)):
adjustedVals[i] = (np.exp(vector[i])) / totalSum
return adjustedVals # this throws back an error sometimes?!?!
После проверки большинство рекомендуютиспользуя десятичный модуль.Однако, когда я возился со значениями, используемыми в командной строке с этим модулем, а именно:
from decimal import Decimal
import math
test = Decimal(math.exp(720))
, я получаю аналогичную ошибку для любых значений math.exp (> 709).
OverflowError: (34, 'Numerical result out of range')
Мой вывод таков, что даже десятичное число не может обработать это число.Кто-нибудь знает другой метод, который я мог бы использовать, чтобы представить эти очень большие поплавки.