2017-04-07 3 views
0

내 프로젝트에서 부정적인 인스턴스는 긍정적 인 인스턴스보다 훨씬 큽니다. 따라서 더 큰 가중치를 갖는 긍정적 인 인스턴스를 제공하고 싶습니다. 내 목표는 다음과 같습니다 tensorflow에서 손실 함수가 정의 되었습니까?

loss = 0.0 
if y_label==1:loss += 100 * cross_entropy 
else:loss += cross_entropy 

이 tensorflow의에서이 realizate하는 방법

답변

0

losses이 배치의 예제에 대한 손실 값의 벡터 (순위-1 텐서)로하자 [?]. 그리고 y을 해당 레이블의 벡터로 지정하십시오. 그런 다음 여기에

weights = w_pos*y + w_neg*(1.0-y) 
loss = tf.reduce_mean(weights*losses) 

하여 원하는 결과를 얻을 수 w_posw_neg 상수 스칼라 값 (귀하의 예제에서 w_pos=100.0w_neg=1.0가) 있습니다. 벡터 weights의 값은 레이블이 1 인 예제에서는 w_pos이고 값이 0이면 w_neg입니다. 그런 다음 을 요소 순으로 losses으로 곱하면 해당 레이블에 따라 losses의 값을 계량 한 다음 평균을 취합니다.

+0

감사합니다. 나는 코딩을 실현합니다. –

관련 문제