내가 RStudio에서 keras R 패키지를 사용하고 있습니다. 나는 사용자 정의 손실 함수를 사용하는 모델에 맞게 원하는; 특히 Poisson 모델에 대한 (-1) * log-likelihood입니다. 나는 대수를 ln (0.0001 + x^2)/2로 부드럽게합니다. this article의 예에 따라 나는 내가 사용 등 lgamma 등 K의 $ 로그 및 R 기능과 "백엔드"소스에서 Keras에서 사용하는 기능을, 혼합하고 여기에Keras RStudio 사용자 정의 손실 함수
K <- backend()
poisson <- function(y_true, y_pred){
K$sum(y_pred - y_true * K$log(y_pred^2 + 1e-4)/2 + lgamma(y_true+1))
}
쓰기 K $의 lgamma 때문에 오류가 발생했습니다. 예제에서 명령 나머지는 실행하고 약간의 출력을 생산했다.
질문 : 1) 하나가 혼합 RStudio에서 실행 keras에서 일치하는 기능을 할 수 있습니까? 2) 함수가 수행중인 작업을 테스트하려면 어떻게해야합니까? 나는
poisson(1:5,3:7)
을 시도 그리고 오류
Error in py_call_impl(callable, dots$args, dots$keywords) :
TypeError: Input 'y' of 'Mul' Op has type float32 that does not match type int32 of argument 'x'.
사실 당신은 K $의 평가()와 K $ 상수() 함수를 사용하여 다시 R 벡터로 변환하여 수행 할 수 있습니다. https://github.com/rstudio/keras/issues/59에서 살펴보십시오. – madpower2000