Cuál debe ser la Salida de forma de keras modelo de capas

0

Pregunta

yo soy poco confundido acerca de la salida de forma de keras capa. He creado un ejemplo de keras modelo y también se muestra el resumen.

numberOfLSTMcells=1
n_timesteps_in=129
n_features=61
inp =Input(shape=(n_timesteps_in, n_features))
lstm= LSTM(numberOfLSTMcells,return_sequences=True, return_state=False) (inp)
fc=Dense(64,activation='relu',name='hidden_layer')(lstm)
out=Dense(1,activation='sigmoid',name='last_layer')(fc)
model = Model(inputs=inp, outputs=out)

Resumen del modelo

Model: "model_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_3 (InputLayer)         [(None, 129, 61)]         0         
_________________________________________________________________
lstm_2 (LSTM)                (None, 129, 1)            252       
_________________________________________________________________
hidden_layer (Dense)         (None, 129, 64)           128       
_________________________________________________________________
last_layer (Dense)           (None, 129, 1)            65        
=================================================================
Total params: 445
Trainable params: 445
Non-trainable params: 0

Lo que yo creo que la forma de la última capa debe ser (None,64,1). Porque hidden_layers tiene 64 neuronas que se pasa como entrada a last_layer

keras tensorflow
2021-11-23 20:02:29
1

Mejor respuesta

1

Desde que se configuró el parámetro de return_sequences a True en el LSTM capa, que está recibiendo una secuencia con el mismo número de pasos de tiempo como su entrada y un espacio de salida de 1 para cada paso de tiempo, por lo tanto la forma (None, 129, 1). Después, se aplica un Dense capa de este tensor, pero esta capa se aplica siempre a la última dimensión de un tensor, que en su caso es 1 y no 129. Por lo tanto, obtener la salida (None, 129, 64). A continuación, utilice una final de la capa de salida, que también se aplica a la última dimensión de su tensor resultante en la salida con la forma (None, 129, 1). El Tensorflow docs también explicar este comportamiento:

Si la entrada a la capa tiene un rango mayor que 2, entonces Densa calcula el producto escalar entre las entradas y el núcleo a lo largo de la última eje de las entradas y el eje 0 del kernel (el uso de tf.tensordot).

Puede establecer return_sequences a False si desea trabajar con un 2D de salida (batch_size, features) en lugar de 3D (batch_size, time_steps, features)o puede utilizar el Flatten la capa.

2021-11-24 08:30:26

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................