Qual deve ser a Saída de forma de keras camadas do modelo

0

Pergunta

eu estou pouco confuso sobre a saída de forma de keras camada. Eu criei um exemplo de keras modelo e também apresentado o seu resumo.

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)

Resumo do 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

O que eu acho que a forma da última camada deve ser (None,64,1). Porque hidden_layers tem 64 neurônios que vai como entrada para last_layer

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

Melhor resposta

1

Desde que você definir o parâmetro return_sequences para True no LSTM camada, você está recebendo uma sequência com o mesmo número de passos de tempo como de sua entrada e um espaço de saída de 1 para cada iteração, portanto, a forma (None, 129, 1). Depois, aplicar um Dense camada para este tensor, mas esta camada é sempre aplicado a última dimensão de um tensor, que no seu caso é 1 e não 129. Portanto, você obtém a saída (None, 129, 64). Em seguida, você usar uma última camada de saída, que também é aplicada para a última dimensão do seu tensor, resultando na saída com a forma (None, 129, 1). O Tensorflow docs também explicar este comportamento:

Se a entrada para a camada tem um valor maior do que 2, então Densa calcula o produto escalar entre os insumos e o kernel ao longo do último eixo das entradas e eixo 0 do kernel (usando o tf.tensordot).

Você pode definir return_sequences para False se você deseja trabalhar com um 2D saída (batch_size, features) em vez de 3D (batch_size, time_steps, features)ou você pode usar o Flatten camada.

2021-11-24 08:30:26

Em outros idiomas

Esta página está em outros idiomas

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