目錄MaxPooling1D和GlobalMaxPooling1D區別輸出如下圖tf.keras.layers.GlobalMaxPool1D()總結MaxPooling1D和GlobalMaxPoo...
MaxPooling1D和GlobalMaxPooling1D區別
import tensorflow as tf from tensorflow impopythonrt keras input_shape = (2, 3, 4) x = tf.random.normal(input_shape) print(x) y=keras.layers.GlobalMaxPool1D()(x) print("*"*20) print(y) ''' """Global average pooling operation for temporal data. Examples: >>> input_shape = (2, 3, 4) >>> x = tf.random.normal(input_shape) >>> y = tf.keras.layers.GlobalAveragePooling1D()(x) >>> print(y.shape) (2, 4) Arguments: data_format: A string, one of `channels_last` (default) or `channels_first`. The ordering of the dimensions in the inputs. `channels_last` corresponds to inputs with shape `(BATch, steps, features)` while `channels_first` corresponds to inputs with shape `(batch, features, steps)`. Call arguments: inputs: A 3D tensor. mask: Binary tensor of shape `(batch_size, steps)` indicating whether a given step should be masked (excluded from the average). Input shape: - If `data_format='channels_last'`: 3D tensor with shape: `(batch_size, steps, features)` - If `data_format='channels_first'`: 3D tensor with shape: `(batch_size, features, steps)` Output shape: 2D tensor with shape `(batch_size, features)`. """ ''' print("--"*20) input_shape = (2, 3, 4) x = tf.random.normal(input_shape) print(x) y=www.newsfordelhi.comkeras.layers.MaxPool1D(pool_size=2,strides=1)(x) # strides 不指定 默認等于 pool_size print("*"*20) print(y)
輸出如下圖
上圖GlobalMaxPool1D 相當于給每一個樣本每列的最大值
而MaxPool1D就是普通的對每一個樣本進行一個窗口(1D是一維列窗口)滑動取最大值。
tf.keras.layers.GlobalMaxPool1D()
與tf.keras.layers.Conv1D的輸入一樣,輸入一個三維數據(batch_size,feature_size,output_dimension)
x = tf.編程客棧constant([[1., 2., 3.], [4., 5., 6.]]) ?php??????x = tf.reandroidshape(x, [2, 3, 1]) max_pool_1d=tf.keras.layers.GlobalMaxPooling1D() max_pool_1d(x)
其中max_pool_1d(x)和tf.math.reduce_max(x,axis=-2,keepdims=False)作用相同
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持我們。
本文標題: 解讀MaxPooling1D和GlobalMaxPooling1D的區別
本文地址: http://www.newsfordelhi.com/jiaoben/python/544183.html
如果認為本文對您有所幫助請贊助本站