ドロップアウトのKeras実装について読んでいますが、dropoutと言っても逆ドロップアウトバージョンを使用しているようです。ここでTensorFlowバックエンドでKerasを使用した場合のドロップアウト
は、私がKerasとTensorflowドキュメントを読んだとき、私は理解しているものです:
私はDropout(0.4)
を指定すると0.4は、その層内のすべてのノードが0.4であることを意味するドロップさの40%のチャンスがあることを意味しますドロップ確率。したがって、逆方向ドロップアウトの概念によって、残りのニューロンの出力は、保持確率が0.6であるため、1/0.6の係数によってスケーリングされる。
(私の解釈が間違っている場合は指摘してください。私の全体の疑問が、この解釈に基づいています。)
私は0.4の値を指定した場合、それは単に直接意味キープ確率を要求TensorFlowで一方各ノードは60%の確率で削除されます。
私はTensorFlowをKerasのバックエンドで使用しているとどうなりますか?それは維持か落とし確率であるのに0.4かかりますか? Keras層内(すべての必要なライブラリの最新バージョンでのPython 3.6を使用して)
私は明らかにあなたが質問で見ることができるように、あなたが指定したものと全く同じものを指定していることを明確に理解していました。しかし、それは私が求めているものではありません。 TensorFlowはインバースドロップアウトを実装しますが、テンソルフローでドロップアウト(0.4)と言えばノードは60%の確率でドロップされる可能性があります。私の質問:KerasのバックエンドでTensorFlowを使用し、ドロップアウト(0.4)を指定した場合、ノードは40%の確率で落とされるか、40%の確率で保管されますか? –
コメントありがとうございます。私はあなたを正しく理解していると思います。あなたのバックエンドにかかわらず統一されたインターフェイスを提供するために、多くのバックエンドを抽象化するAPIとしてKerasを認識しています。だからほとんどの点で、あなたが使っているバックエンドを問わず、Kerasモデルの違いに気付かないでしょう。しかし、とにかく:あなた自身をチェックする簡単な方法は、ドロップアウトを非常に高く設定することです。たとえば99や1.0です。あなたは、この量のニューロンが落とされる(保持されない)ことが分かります。 – petezurich