gpt4 book ai didi

python - 添加 LSTM 层但获得所需的位置参数 : 'units' error

转载 作者:太空宇宙 更新时间:2023-11-04 04:16:05 25 4
gpt4 key购买 nike

我正在尝试运行我的第一个机器学习模型。但是我收到以下错误。

return_sequences=True)) TypeError: init() missing 1 required positional argument: 'units'

from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, LSTM, Dropout

model = Sequential()

model.add(LSTM(input_dim=1,
output_dim=50,
return_sequences=True))

model.add(Dropout(0.2))

model.add(LSTM(100, return_sequences=False))
model.add(Dropout(0.2))

model.add(Dense(output_dim=1))
model.add(Activation('linear'))

start = time.time()

model.compile(loss="mse", optimizer="rmsprop")

因为它说缺少参数单位,所以我也尝试了以下行,

model.add(LSTM(100,
input_dim=1,
output_dim=50,
return_sequences=True))

然后收到此错误消息,但我不明白为什么我第一次尝试时没有出现。我错过了什么?

TypeError: ('Keyword argument not understood:', 'input_dim')

最佳答案

unitsLSTM的第一个参数,表示该层输出数据的最后一个维度。它显示第一个错误,因为您的代码在第一次尝试时没有 unitsunits 满足条件,因此它在第二次尝试中显示第二个错误。

在这种情况下,您应该使用 input_shape 参数来指定第一层输入的形状。您的第一个 LSTMinput_shape 应该有两个数据(timestepfeaturebatch_size默认不需要填写)因为LSTM需要三维输入。假设您的时间步长为 10,则您的代码应更改为以下内容。

from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, LSTM, Dropout,Activation

model = Sequential()
model.add(LSTM(units=100,input_shape=(10,1),return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(100, return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(units=1))
model.add(Activation('linear'))
model.compile(loss="mse", optimizer="rmsprop")
print(model.summary())

_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm (LSTM) (None, 10, 100) 40800
_________________________________________________________________
dropout (Dropout) (None, 10, 100) 0
_________________________________________________________________
lstm_1 (LSTM) (None, 100) 80400
_________________________________________________________________
dropout_1 (Dropout) (None, 100) 0
_________________________________________________________________
dense (Dense) (None, 1) 101
_________________________________________________________________
activation (Activation) (None, 1) 0
=================================================================
Total params: 121,301
Trainable params: 121,301
Non-trainable params: 0
_________________________________________________________________

关于python - 添加 LSTM 层但获得所需的位置参数 : 'units' error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55407165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com