2017-03-29 4 views
0

나는 Keras에 새로운 해요, 이것은 나의 윈입니다 : 높음, 중간, 낮음 : 나는 3 개 출력이Keras - predict_proba가 1을 더하지 않습니다?

model = Sequential() 
model.add(Dense(12, activation="relu", input_dim=12, kernel_initializer="normal")) 
model.add(Dense(3, activation="sigmoid", kernel_initializer="normal")) 
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) 

. 나는 predict 기능을 사용하려

, 내가 올바른 클래스를 얻을 :

array(['medium', 'low', 'medium', ..., 'low', 'medium', 'low'], dtype=object) 

내가 predict_proba 기능을 시도 할 때 그러나, 나는 1까지 추가하지 않습니다 확률을 얻을 것?

array([[ 4.93983855e-04, 2.28181913e-01, 9.70774710e-01], 
     [ 3.14530940e-03, 9.60477769e-01, 3.79752717e-04], 
     [ 1.40661141e-03, 5.70683666e-02, 9.96348858e-01], 
     ..., 
     [ 1.29012510e-01, 7.08254218e-01, 2.44960701e-03], 
     [ 1.69786233e-02, 4.71719205e-02, 9.90665674e-01], 
     [ 1.28657368e-04, 9.89430904e-01, 9.04915680e-04]], dtype=float32) 

첫 번째 행 4.93983855e-04 + 2.28181913e-01 + 9.70774710e-01 합

보다 1. I의 첫번째 행을 생각 1.199450606855 인 수단이다 확률 첫 번째 열 (4.93983855e-04)은 중간 크기입니까?

답변

2

sigmoid 활성화는 0과 1 사이의 값을 서로 독립적으로 출력합니다.

당신은, 그것이 내가이 도움이 :)

+0

감사합니다 희망 1.

에 정리해 출력을 정상화, 1에 요약 확률 출력, 마지막 층에 softmax 정품 인증을 사용하려면 그것은 작동합니다! – user1157751

관련 문제