有人能用vb.net编写一个简单的sigmoid函数吗?我试过了,但我认为它不起作用。如果任何人能提出任何改进和/或修复建议,我将非常高兴。谢谢!
Function sigmoid(inputs As Single)
Dim finish As New Decimal
finish = 1 / 1 + 2.71828183 ^(-inputs)
Return finish
End Function发布于 2016-08-13 20:45:55
除法运算符的优先级高于加法运算符,因此您的函数是计算(1/1) + e^-x。您所需要做的就是添加括号以强制求值为1/(1+e^-x)。
有一个内置的e^x函数。
可能不需要使用Single而不是Double。
您需要声明函数的返回类型- Double可能比Decimal更适合您使用它的用途。使用Option Strict On会告诉您前一种情况;我强烈建议您使用它并将其设置为新VB项目的默认设置。
Function sigmoid(x As Double) As Double
Return 1 / (1 + Math.Exp(-x))
End Functionhttps://stackoverflow.com/questions/38932637
复制相似问题