首頁  >  文章  >  後端開發  >  淺談tensorflow1.0 池​​化層(pooling)和全連接層(dense)

淺談tensorflow1.0 池​​化層(pooling)和全連接層(dense)

不言
不言原創
2018-04-27 10:59:174238瀏覽

這篇文章主要介紹了淺談tensorflow1.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. inputs: 進行池化的資料。

  2. pool_size: 池化的核心大小(pool_height, pool_width),如[3,3]. 如果長寬相等,也可以直接設定為一個數,如pool_size=3.

  3. strides: 池化的滑動步長。可以設定為[1,1]這樣的兩個整數. 也可以直接設定為一個數,如strides=2

  4. padding: 邊緣填充,'same' 和'valid'選其一。預設為valid

  5. data_format: 輸入資料格式,預設為channels_last ,即(batch, height, width, channels),也可以設定為channels_first 對應(batch, channels, height, width ).

  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
)

參數和前面的最大值池化一樣。

全連接dense層定義在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. inputs: 輸入數據,2維tensor.

  2. units: 該層的神經單元結點數。

  3. activation: 啟動函數.

  4. #use_bias: Boolean型,是否使用偏移項.

  5. kernel_initializer: 卷積核的初始化器.

  6. bias_initializer: 偏移項目的初始化器,預設初始化為0.

  7. kernel_regularizer : 卷積核化的正規化,可選.

  8. bias_regularizer: 偏移項目的正規化,可選.

  9. ##activity_regularizer:輸出的正規化函數.

  10. trainable: 布林型,表示該層的參數是否參與訓練。如果為真則變數加入圖集合中GraphKeys.TRAINABLE_VARIABLES (see tf.Variable).

  11. name: 層的名字.

## reuse: Boolean型, 是否重複使用參數.


全連接層執行操作outputs = activation(inputs.kernel bias)

如果執行結果不想進行啟動操作,則設定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載入資料的三種方式########################

以上是淺談tensorflow1.0 池​​化層(pooling)和全連接層(dense)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn