Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 如何在lstm输出的每个时间步应用平均池?_Tensorflow_Keras_Deep Learning_Lstm - Fatal编程技术网

Tensorflow 如何在lstm输出的每个时间步应用平均池?

Tensorflow 如何在lstm输出的每个时间步应用平均池?,tensorflow,keras,deep-learning,lstm,Tensorflow,Keras,Deep Learning,Lstm,我试图在lstm输出的每个时间步应用平均池,请查找我的架构,如下所示 X_input = tf.keras.layers.Input(shape=(64,35)) X= tf.keras.layers.LSTM(512,activation="tanh",return_sequences=True,kernel_initializer=tf.keras.initializers.he_uniform(seed=45),kernel_regularizer=tf.keras.r

我试图在lstm输出的每个时间步应用平均池,请查找我的架构,如下所示

X_input = tf.keras.layers.Input(shape=(64,35))
X= tf.keras.layers.LSTM(512,activation="tanh",return_sequences=True,kernel_initializer=tf.keras.initializers.he_uniform(seed=45),kernel_regularizer=tf.keras.regularizers.l2(0.1))(X_input)
X= tf.keras.layers.LSTM(256,activation="tanh",return_sequences=True,kernel_initializer=tf.keras.initializers.he_uniform(seed=45),kernel_regularizer=tf.keras.regularizers.l2(0.1))(X)
X = tf.keras.layers.GlobalAvgPool1D()(X)
X = tf.keras.layers.Dense(128,activation="relu",kernel_initializer=tf.keras.initializers.he_uniform(seed=45),kernel_regularizer=tf.keras.regularizers.l2(0.1))(X)
X = tf.keras.layers.Dense(64,activation="relu",kernel_initializer=tf.keras.initializers.he_uniform(seed=45),kernel_regularizer=tf.keras.regularizers.l2(0.1))(X)
X = tf.keras.layers.Dense(32,activation="relu",kernel_initializer=tf.keras.initializers.he_uniform(seed=45),kernel_regularizer=tf.keras.regularizers.l2(0.1))(X)
# X = tf.keras.layers.Dense(16,activation="relu",kernel_initializer=tf.keras.initializers.he_uniform(seed=45),kernel_regularizer=tf.keras.regularizers.l2(0.1))(X)
output_layer = tf.keras.layers.Dense(10,activation='softmax', kernel_initializer=tf.keras.initializers.he_uniform(seed=45))(X)
model2 = tf.keras.Model(inputs = X_input,outputs = output_layer)

我想在每个时间步上取平均值,而不是在每个单元上
例如,现在我正在获取形状(无,256),但我想从全局平均池层获取形状(无,64),我需要做什么。

我不确定这是最有效的方法,但您可以尝试以下方法:

X = tf.keras.layers.Reshape(target_shape=(64,256,1))(X)
X = tf.keras.layers.TimeDistributed(tf.keras.layers.GlobalAveragePooling1D())(X)
X = tf.keras.layers.Reshape(target_shape=(64,))(X)
而不是:

X = tf.keras.layers.GlobalAvgPool1D()(X)
总结如下:

Model: "functional_13"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_14 (InputLayer)        [(None, 64, 35)]          0         
_________________________________________________________________
lstm_26 (LSTM)               (None, 64, 512)           1122304   
_________________________________________________________________
lstm_27 (LSTM)               (None, 64, 256)           787456    
_________________________________________________________________
reshape_2 (Reshape)          (None, 64, 256, 1)        0         
_________________________________________________________________
time_distributed_8 (TimeDist (None, 64, 1)             0         
_________________________________________________________________
reshape_3 (Reshape)          (None, 64)                0         
_________________________________________________________________
dense_61 (Dense)             (None, 128)               8320      
_________________________________________________________________
dense_62 (Dense)             (None, 64)                8256      
_________________________________________________________________
dense_63 (Dense)             (None, 32)                2080      
_________________________________________________________________
dense_64 (Dense)             (None, 10)                330       
=================================================================
Total params: 1,928,746
Trainable params: 1,928,746
Non-trainable params: 0
X=tf.reduce_mean(X,axis=-1),而不是tf.keras.layers.GlobalAvgPool1D()(X)