ホームページ > バックエンド開発 > Python チュートリアル > Keras の高密度レイヤーが次元を維持するのはなぜですか?

Keras の高密度レイヤーが次元を維持するのはなぜですか?

DDD
リリース: 2024-10-21 07:52:02
オリジナル
545 人が閲覧しました

Why Does the Keras Dense Layer Preserve Dimensionality?

Keras Dense Layer の入力形状の難問

この質問は、Keras のドキュメントとその Dense Layer の動作の間の明らかな矛盾を調査します。ドキュメントには、Dense 層はカーネルでドット積を適用する前に入力を平坦化すると記載されています。ただし、提供されたコード スニペットが示すように、Dense レイヤーの出力形状は平坦化されていないように見えます。

動作を理解する

この矛盾を解決する鍵Keras で Dense レイヤーがどのように適用されるかを理解することが重要です。ドキュメントとは異なり、Dense 層は実際には入力テンソルの最後の軸で動作します。したがって、サンプル コード スニペットでは、Dense レイヤーが (2,3) 入力テンソルの各列に適用され、(2, 4) の出力形状になります。

含意と側面注

この動作には重大な影響があります:

  • TimeDistributed(Dense(...)) および Dense(...) 同等: TimeDistributed (Dense(...)) と Dense(...) は、どちらも入力テンソルの最後の軸に Dense レイヤーを適用するため、同等になりました。
  • 共有ウェイト効果: Dense レイヤーの各ユニットは、入力の最後の次元のすべての要素に同じ重みで接続されているため、フラット化と比較してパラメーターの数が少なくなります。

ビジュアル イラスト

次の視覚的な図は、Dense レイヤーの動作を明確にしています:

[(2,3) 形状のテンソルと、最後の軸に 4 つのユニットが適用された Dense レイヤーのイメージ]

Dense 層の各ユニットは、同じ重みセットを持つ入力テンソルの列内のすべての要素に接続されます。結果は、(2, 4) の形状を持つ出力テンソルです。

以上がKeras の高密度レイヤーが次元を維持するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート