ホームページ  >  記事  >  バックエンド開発  >  tensorflow1.0 プーリング層 (プーリング) と全結合層 (密) についての簡単な説明

tensorflow1.0 プーリング層 (プーリング) と全結合層 (密) についての簡単な説明

不言
不言オリジナル
2018-04-27 10:59:174185ブラウズ

この記事では、tensorflow 1.0 のプーリング層 (pooling) と全結合層 (dense) を主に紹介します。一緒に見てみましょう

プーリング層はtensorflow/python/layers/pooling.pyで定義されています

最大プーリングと平均プーリングがあります。

1. tf.layers.max_pooling2d

max_pooling2d(
  inputs,
  pool_size,
  strides,
  padding='valid',
  data_format='channels_last',
  name=None
)

  1. 入力: プールされたデータ。

  2. pool_size: [3, 3] などのプールされたコア サイズ (pool_height、pool_width)。長さと幅が等しい場合は、

  3. などの数値に直接設定することもできます。

    strides: プールのスライディング ステップ サイズ。 [1,1] のような 2 つの整数に設定することもできます。また、strides=2

  4. padding: エッジ パディングのように、「同じ」または「有効」のいずれかを選択します。デフォルトは有効です

  5. data_format: 入力データ形式、デフォルトはchannels_last、つまり(バッチ、高さ、幅、チャネル)ですが、(バッチ、チャネル、高さ、幅)に対応するchannels_firstに設定することもできます。

  6. name: レイヤーの名前。

例:

pool1=tf.layers.max_pooling2d(inputs=x, pool_size=[2, 2], strides=2)

は通常、次のように畳み込み層の後に配置されます:

conv=tf.layers.conv2d(
   inputs=x,
   filters=32,
   kernel_size=[5, 5],
   padding="same",
   activation=tf.nn.relu)
pool=tf.layers.max_pooling2d(inputs=conv, pool_size=[2, 2], strides=2)

2.tf.layers.average_pooling2d

average_pooling2d(
  inputs,
  pool_size,
  strides,
  padding='valid',
  data_format='channels_last',
  name=None
)

パラメータと以前の最大値バリュープーリングと同じです。

完全に接続された高密度層は、tensorflow/python/layers/core.py.

3、tf.layers.dense

dense(
  inputs,
  units,
  activation=None,
  use_bias=True,
  kernel_initializer=None,
  bias_initializer=tf.zeros_initializer(),
  kernel_regularizer=None,
  bias_regularizer=None,
  activity_regularizer=None,
  trainable=True,
  name=None,
  reuse=None
)

  1. で定義されています。入力: 入力データ、2 次元テンソル。

  2. units: この層のニューラルユニットノードの数。

  3. activation: 活性化関数。

  4. use_bias: ブール型、バイアス項を使用するかどうか。

  5. kernel_initializer: 畳み込みカーネルの初期化子。

  6. bias_initializer: バイアス項の初期化子、デフォルトの初期化です0.

  7. kernel_ Regularizer: 畳み込みカーネルの正則化、オプション。

  8. バイアス項の正則化。

  9. trainable: ブール値。タイプ、かどうかを示すこの層のパラメータはトレーニングに参加します。 true の場合、変数はグラフ コレクション GraphKeys.TRAINABLE_VARIABLES に追加されます (tf.Variable を参照)。

  10. name: レイヤーの名前。

  11. reuse: ブール型、パラメーターを再利用するかどうか。

  12. 全接続層の実行操作の出力 = activity(inputs.kernel +bias)

  13. 実行結果がアクティベーション操作を必要としない場合は、activation=None を設定します。

例:

#全连接层
dense1 = tf.layers.dense(inputs=pool3, units=1024, activation=tf.nn.relu)
dense2= tf.layers.dense(inputs=dense1, units=512, activation=tf.nn.relu)
logits= tf.layers.dense(inputs=dense2, units=10, activation=None)

完全に接続された層のパラメータを正規化することもできます:

コードをコピーします
コードは次のとおりです:

dense1 = tf.layers.dense(inputs=pool3, units=1024, activation=tf.nn.relu,kernel_regularizer=tf.contrib.layers.l2_regularizer(0.003))

関連する推奨事項:あTensorflow モデルについての簡単な説明 ロードの保存と復元

tensorflow でデータをロードする 3 つの方法の詳細な説明

以上がtensorflow1.0 プーリング層 (プーリング) と全結合層 (密) についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。