私はRStudioでkeras Rパッケージを使用しています。 私は、カスタマイズされた損失関数を使用するモデルに適合したいと思います。具体的には、ポアソンモデルの(-1)*対数尤度である。私はln(0.0001 + x^2)/ 2として対数を平滑化しています。たとえば、次のthis articleに私は、そのような私はK $関数lgammaので使用関数lgamma、として、そのようなKの$ログとして、「バックエンド」のソースからKerasで使用する機能とを混合し、そしてR機能しています。ここ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))
}
を書きますエラーを投げた。 例の残りのコマンドが実行され、出力が生成されました。
質問: 1)RStudioで動作しているケラスで機能を混在させることはできますか? 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'.
実際には、Rベクトルに変換し、K $ eval()およびK $ constant()関数を使用してそれを行うことができます。 https://github.com/rstudio/keras/issues/59をご覧ください – madpower2000