Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Diskussion über die Tensorflow1.0-Pooling-Schicht (Pooling) und die vollständig verbundene Schicht (dicht)

Eine kurze Diskussion über die Tensorflow1.0-Pooling-Schicht (Pooling) und die vollständig verbundene Schicht (dicht)

不言
不言Original
2018-04-27 10:59:174186Durchsuche

In diesem Artikel werden hauptsächlich die Pooling-Schicht (Pooling) und die vollständig verbundene Schicht (Dense) von tensorflow1.0 vorgestellt. Jetzt teile ich sie mit Ihnen und gebe Ihnen eine Referenz. Werfen wir gemeinsam einen Blick darauf

Die Pooling-Schicht ist in tensorflow/python/layers/pooling.py definiert.

Es gibt maximales Pooling und mittleres Pooling.

1. tf.layers.max_pooling2d

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

  1. Eingaben: Gepoolte Daten.

  2. pool_size: Pool-Kerngröße (pool_height, pool_width), z. B. [3, 3] Wenn Länge und Breite gleich sind, kann sie auch direkt auf eine Zahl festgelegt werden, z as pool_size=3.

  3. Schritte: Der gleitende Schritt des Poolings. Es kann auf zwei Ganzzahlen wie [1,1] gesetzt werden. Es kann auch direkt auf eine Zahl gesetzt werden, wie zum Beispiel strides=2

  4. padding: edge padding, 'same' und 'gültig' Wählen Sie eine aus. Der Standardwert ist gültig

  5. data_format: Eingabedatenformat, der Standardwert ist „channels_last“, also (Batch, Höhe, Breite, Kanäle), er kann auch auf „channels_first“ entsprechend (batch) eingestellt werden , Kanäle, Höhe, Breite ).

  6. Name: Der Name der Ebene.

Beispiel:

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

wird normalerweise nach der Faltungsschicht platziert, wie zum Beispiel:

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
)

Die Parameter sind die gleichen wie beim vorherigen maximalen Pooling.

Die vollständig verbundene dichte Schicht ist in tensorflow/python/layers/core.py definiert.

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. Eingaben: Eingabedaten, zweidimensionaler Tensor.

  2. Einheiten: die Anzahl der neuronalen Einheitsknoten darin Schicht.

  3. Aktivierung: Aktivierungsfunktion.

  4. use_bias: Boolescher Typ, ob der Bias-Term verwendet werden soll.

  5. kernel_initializer: Initialisierer des Faltungskerns.

  6. bias_initializer: Initialisierer des Bias-Terms, die Standardinitialisierung ist 0.

  7. kernel_regularizer : Regularisierung des Faltungskerns, optional.

  8. bias_regularizer: Regularisierung des Bias-Terms, optional.

  9. activity_regularizer: Ausgabe-Regularisierungsfunktion.

  10. trainierbar: Boolescher Typ, der angibt, ob die Parameter dieser Ebene am Training teilnehmen. Wenn true, wird die Variable zur Diagrammsammlung GraphKeys.TRAINABLE_VARIABLES hinzugefügt (siehe tf.Variable).

  11. Name: Der Name der Ebene.

  12. Wiederverwendung: Boolescher Typ, ob Parameter wiederverwendet werden sollen.

Vollständig verbundene Schichtausführungsvorgangsausgaben = Aktivierung (inputs.kernel + Bias)

Wenn das Ausführungsergebnis Wenn Sie den Aktivierungsvorgang nicht durchführen möchten, setzen Sie „activation=None“.

Beispiel:

#全连接层
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)

Sie können auch die Parameter der vollständig verbundenen Schicht regulieren:


Kopieren Sie den CodeDer Code lautet wie folgt:

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

Verwandte Empfehlungen:

Eine kurze Diskussion zum Speichern und Wiederherstellen des Tensorflows Modell

Detaillierte Erläuterung der drei Möglichkeiten zum Laden von Daten in Tensorflow

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Tensorflow1.0-Pooling-Schicht (Pooling) und die vollständig verbundene Schicht (dicht). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn