gpt4 book ai didi

python - 我可以用符号替换表达式吗?

转载 作者:行者123 更新时间:2023-12-01 06:39:21 25 4
gpt4 key购买 nike

我想象征性地检查 sigmoid 函数的导数是否是通过使用 sigmoid 函数来表示的。我编写了下面的代码,打算将表达式替换为符号,但输出不是我所期望的。如何正确地进行这种替换?

import sympy

# define sigmoid functions
x = sympy.Symbol('x')
sigmoid = lambda x: 1/(1 + sympy.exp(-x))
sigmoid_deriv = sigmoid(x).diff(x)

# define symbol X
X = sympy.Symbol('X')

print(sigmoid_deriv.subs({sigmoid: X}))

输出:

exp(-x)/(1 + exp(-x))**2

所需的输出:

X*(1 - X)

最佳答案

感谢@ComplicatedPhenomenon,它解决了。这是代码。

import sympy

# define sigmoid functions
x = sympy.Symbol('x')
sigmoid = 1/(1 + sympy.exp(-x))
sigmoid_deriv = sigmoid.diff(x)

# define symbol X
X = sympy.Symbol('X')

# solve inverse sigmoid function
eq = sympy.Eq(sigmoid, X)
x_lst = sympy.solve(eq, x)

# unpack result
x2 = x_lst[0]

# substitute x as x2
sigmoid_deriv2 = sigmoid_deriv.subs({x: x2})

# simplify `sigmoid_deriv2`
sigmoid_deriv3 = sympy.simplify(sigmoid_deriv2)

# print simplified sigmoid_deriv
print(sigmoid_deriv3)

输出:

X*(1 - X)

谢谢。

关于python - 我可以用符号替换表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59526722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com