FC2ブログ

頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


Kerasでの損失関数の設定

model.compile(loss='categorical_crossentropy', …)
↑KerasでのMNISTのサンプルコードだと、損失関数はこのように記述されている。
自分が強化学習で使いたいのはクロスエントロピーじゃなくてhuber loss関数なんだよな、、、ってことでどう記述をすればいいのか調べた。

python - Using Tensorflow Huber loss in Keras - Stack Overflow
↑ここに(下の方にある回答なんだが)defでhuber_lossを定義する方法が書いてる。
え?こんなのでいいの?と思って試してみた。
model.compile(loss=huber_loss, …)
↑使う部分の記述はこれで動いた。
引数がない。
あんなの飾りです。偉い人にはそれがわからんのです。

よくわかんないが引数を指定しなくていいみたい。Kerasがよきに計らってくれるということか。

なお、ここへたどり着くまでにlogcoshでやろうとし、そのためにはリファレンスに書いてあるような引数を記述しないとだめなんだと思い、そのためにはモデルをFunctional APIで書かないとだめなんだと思い、、、などなど紆余曲折。終わってみれば変更部分は本当少しだったな。


(参考ページ)
Functional APIのガイド - Keras Documentation
Kerasでちょっと難しいModelやTrainingを実装するときのTips

<< SCNProgramのシェーダーで使える関数  TopPage  shaderModifiersとSCNProgramのシェーダを両方使えるか? >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1193-0b9f0d9e




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad