2016-08-13 2 views
0

누구나 vb.net에서 간단한 시그 모이 드 함수를 코딩 할 수 있습니까? 나는 노력했고 그것이 효과가 있다고 생각하지 않는다. 누구든지 개선 및/또는 수정 제안을 제안 할 수 있다면, 나는 매우 행복 할 것이다. 감사!vb.net에서 sigmoid 함수

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

답변

2

나눗셈 연산자, 가산 연산자보다 precendence이 있으므로, 함수는 (1/1) + E^-x를 산출한다. 평가는 1/(1 + e^-x)가되도록 대괄호를 추가하면됩니다.

e^x 함수가 내장되어 있습니다.

아마도 Double이 아닌 Single을 사용할 필요는 없습니다.

함수의 반환 형식을 선언해야합니다. - Double은 아마도 10 진수보다 더 낫습니다. Option Strict On을 사용하면 이전에 대해 이야기했을 것입니다. 나는 이것을 사용하여 새로운 VB 프로젝트의 기본값으로 설정할 것을 강력히 권장한다.

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

Operator Precedence in Visual BasicOption Strict On를 참조하십시오.

관련 문제