小编Ran*_*ker的帖子

在python中为列表定义数值稳定的sigmoid函数的最佳方法

对于标量变量x,我们知道如何在python中写出数值稳定的sigmoid函数:

def sigmoid(x):
    if x >= 0:
        return 1. / ( 1. + np.exp(-x) )
    else:
        return exp(x) / ( 1. + np.exp(x) )
Run Code Online (Sandbox Code Playgroud)

对于标量列表z = [x_1, x_2, x_3, ...],假设我们x_i事先不知道每个标量的符号,我们可以概括上面的定义并尝试:

def sigmoid(z):
    result = []
    for x in z:
        if x >= 0:
            result.append(1. / ( 1. + np.exp(-x) ) )
        else:
            result.append( exp(x) / ( 1. + np.exp(x) ) )
    return result
Run Code Online (Sandbox Code Playgroud)

这似乎有效。但是,我觉得这可能不是最 Pythonic 的方式。我应该如何改进“清洁”方面的定义?说,有没有办法使用理解来缩短函数定义?

如果有人问过这个,我很抱歉,因为我在 SO 上找不到类似的问题。非常感谢您的时间和帮助!

python sigmoid

12
推荐指数
3
解决办法
6079
查看次数

标签 统计

python ×1

sigmoid ×1