0

誰でも vb.net で単純なシグモイド関数をコーディングできますか? 試してみましたが、うまくいかないと思います。誰かが改善や修正を提案できれば、とてもうれしいです。ありがとう!

        Function sigmoid(inputs As Single)
        Dim finish As New Decimal
        finish = 1 / 1 + 2.71828183 ^(-inputs)
        Return finish
        End Function
4

1 に答える 1

2

除算演算子は加算演算子よりも優先順位が高いため、関数は (1/1) + e^-x を計算しています。評価が 1/(1+e^-x) になるようにブラケットを追加するだけです。

組み込みの e^x 関数があります。

おそらく、Double ではなく Single を使用する必要はありません。

関数の戻り値の型を宣言する必要があります - Double はおそらく、Decimal よりも使用する目的に適しています。を使用するとOption Strict On、前者についてわかります。これを使用して、新しい VB プロジェクトのデフォルトに設定することを強くお勧めします。

Function sigmoid(x As Double) As Double
    Return 1 / (1 + Math.Exp(-x))
End Function

Visual Basic での演算子の優先順位Option Strict Onを参照してください。

于 2016-08-13T12:45:55.160 に答える