Keras 딥넷을 교육하기 위해 사용자 지정 목적 함수를 만들고 싶습니다. 저는 불균형 한 데이터의 분류를 연구하고 있으며, scikit-learn에서 F1 점수를 많이 사용합니다. 그러나Keras 사용자 지정 목표는 Tensor 평가가 필요합니다.
(from sklearn.metric import f1_score)
def F1Loss(y_true, y_pred):
return 1. - f1_score(y_true, y_pred)
, scikit 배우기에서이 f1_score
방법 NumPy와이 필요합니다 Keras는 동안 훈련을 최소화하기 위해 손실 함수/목적으로 사용하기 - (F1 점수 1) 그래서 저는 F1 메트릭을 반전의 생각을했다 배열 또는 목록을 사용하여 F1 점수를 계산합니다. 나는 Tensors가 .eval()
을 사용하여 그들의 numpy 배열 대응 물에 평가 될 필요가 있다는 것을 발견했다.이 작업을 수행하려면 TensorFlow 세션이 필요하다.
Keras에서 사용하는 세션 개체를 알 수 없습니다. 나는 Keras 백엔드가 어딘가에 정의 된 자체 세션 객체를 가지고 있다고 가정하고 아래의 코드를 사용해 보았지만 이것도 작동하지 않았다. 정말 깊은 Keras의 동작 또는 Tensorflow 상기 순간을 이해하지 않기 때문에
from keras import backend as K
K.eval(y_true)
가 인정 하듯이,이 어둠 속에서 촬영했다.
내 질문은 : numpy 배열 대응 물에 y_true
및 y_pred
텐서를 어떻게 평가합니까?
이것은 매우 도움이되었습니다! 나는이 점들을 나 자신으로 생각하지 않았을 것이다. 고맙습니다. 나는 또 다른 해결책을 모색 할 것이다. – TBZ92