2017-05-01 2 views
1

cntk.metrics.classification_error()의 올바른 사용법을 이해하고이를 근거 진실에 대한 예측을 확인하는 데 사용하려고합니다.CNTK classification_error() 사용 방법은 무엇입니까?

합니다 (Python API docs 기준) 이하 장난감 예 :

array([[ 0., 0., 1.], 
     [ 0., 0., 1.], 
     [ 0., 0., 1.]], dtype=float32) 

I가 표시되는 정방 행렬이 아닌 벡터를 획득 할 수있는 방법이된다

import numpy as np 
from cntk.metrics import classification_error 

predictions = np.asarray([[1., 2., 3., 4.],[1., 2., 3., 4.],[1., 2., 3., 4.]], dtype=np.float32) 
labels = np.asarray([[0., 0., 0., 1.],[0., 0., 0., 1.],[0., 0., 1., 0.]], dtype=np.float32) 
classification_error(predictions, labels).eval() 

는 다음과 같은 결과를 얻을 내가 큰 배치를 처리하고 싶다면 비효율적입니까?

나는 classification_error()를 호출 할 때 axis 키워드를 사용하여 시도했다, 그러나 나는 axis=0 또는 axis=1 내가 빈 결과를 얻을 수 있는지 여부를 설정합니다.

답변

2

이것은 CNTK가 사용자에게 친숙해지기 위해 발생하며 다음과 같은 유형에 대해 혼란 스럽기 때문에 발생합니다 .--) 분류 오류가 정확하지 않기 때문에 알 수 있습니다.

약간의 타이핑 정보를 추가하면 의미론이 올바르게됩니다.

p = C.input(4) 
y = C.input(4) 
classification_error(p, y).eval({p:predictions, y:labels}) 
array([[ 0.], 
     [ 0.], 
     [ 1.]], dtype=float32) 

Google은 혼동을 피하는 수정 작업을 수행 할 예정입니다.

+0

감사합니다. 함수에 대한 입력을 작성해야한다고 생각 했었지만, 문서의 예제가 명시 적으로 적용되지 않았기 때문에 마음이 바뀌지 않았습니다. –