def kerasModel(inp_shape, activation, n):
lstm_input = keras.layers.Input(shape=inp_shape, name='lstm_input')
x = keras.layers.LSTM(50, name='lstm_0')(lstm_input)
x = keras.layers.Dropout(0.2, name='lstm_dropout_0')(x)
x = keras.layers.Dense(64, name='dense_0')(x)
x = keras.layers.Activation('sigmoid', name='sigmoid_0')(x)
x = keras.layers.Dense(n, name='dense_1')(x)
output = keras.layers.Activation(activation, name='linear_output')(x)
model = keras.Model(inputs=lstm_input, outputs=output)
adam = keras.optimizers.Adam(lr=0.0005)
model.compile(optimizer=adam, loss='mse')
return model
modelGeneral = kerasModel((4, 1), 'linear', 1)
modelGeneral.fit(np.reshape(X_aux['X_i'], (1, 4, 1)), np.reshape(X_aux['X_i1'], (1, 4, 1)), verbose=False)
返回此错误:
>>> modelGeneral.fit(np.reshape(X_aux['X_i'], (1, 4, 1)), np.reshape(X_aux['X_i1'], (1, 1, 4)), verbose=False)
ValueError: Error when checking target: expected linear_output to have 2 dimensions, but got array with shape (1, 1, 4)
>>> modelGeneral.summary()
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm_input (InputLayer) (None, 4, 1) 0
_________________________________________________________________
lstm_0 (LSTM) (None, 50) 10400
_________________________________________________________________
lstm_dropout_0 (Dropout) (None, 50) 0
_________________________________________________________________
dense_0 (Dense) (None, 64) 3264
_________________________________________________________________
sigmoid_0 (Activation) (None, 64) 0
_________________________________________________________________
dense_1 (Dense) (None, 1) 65
_________________________________________________________________
linear_output (Activation) (None, 1) 0
=================================================================
Total params: 13,729
Trainable params: 13,729
Non-trainable params: 0
_________________________________________________________________
我试图在linear_output
之前重新格式化数据,但它返回另一个错误:
>>> x = keras.layers.Reshape(inp_shape)(x)
ValueError: total size of new array must be unchanged
我想问题可能在{{
{
array([[[ 1.5357086 , 3.84368446, 3.84368446, 232. ]]])
LSTM层应返回以下序列:
相关问题 更多 >
编程相关推荐