什么应该将输出形状的keras层模型

0

的问题

我点困惑输出形状的keras层。 我已经创建了一个样本keras模型,也显示其摘要。

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)

摘要的模型

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

我想什么形状的最后一层应 (None,64,1). 因为hidden_layers有64个神经元转为输入到last_layer

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

最好的答案

1

因为你设定的参数 return_sequencesTrueLSTM 层,你得到一个序列有相同数量的步骤时间作为你的输入和输出空间的1对每个时间步长,因此形状 (None, 129, 1). 事后,你申请 Dense 层到这张量,但是这一层是总是适用于最后一个维度的一张,你的情况是1和不129. 因此你得到输出 (None, 129, 64). 然后,你使用一个最终产出层,这也是应用于最后一个维你张量产出的形状 (None, 129, 1). 该Tensorflow 文件 还解释这种行为:

如果输入到该层有秩大于2,然后密的计算点的产品之间的输入和核心沿着 轴的投入和轴0的核心(使用tf。tensordot).

你可以设定 return_sequencesFalse 如果你想要工作2D输出 (batch_size, features) 而不是3D的 (batch_size, time_steps, features)或者您可以使用 Flatten 层。

2021-11-24 08:30:26

其他语言

此页面有其他语言版本

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