首页 > 解决方案 > 应用 sigmoid 激活函数实现神经网络算法的数学范围错误

问题描述

我在 python 下的数学包中使用exp()函数,并实现函数以应用 sigmoid 函数。下面是源代码:

import math

def transfer(self, actavation):
     return 1.0/(1.0 + exp(-actavation))

我使用这个函数和数据集来循环参数

dataset = [[2.7810836,2.550537003,0],
    [1.465489372,2.362125076,0],
    [3.396561688,4.400293529,0],
    [1.38807019,1.850220317,0],
    [3.06407232,3.005305973,0],
    [7.627531214,2.759262235,1],
    [5.332441248,2.088626775,1],
    [6.922596716,1.77106367,1],
    [8.675418651,-0.242068655,1],
    [7.673756466,3.508563011,1]]
I get an OverflowError:math range error

我知道为什么会出现这个问题。因为它有太多的计算过程。

但我必须得到一个结果。如果使用四舍五入怎么办?

我怎么解决这个问题??

标签: pythonmathartificial-intelligencebackpropagation

解决方案


推荐阅读