为了账号安全,请及时绑定邮箱和手机立即绑定

添加 LSTM 层但获得所需的位置参数:“单位”错误

添加 LSTM 层但获得所需的位置参数:“单位”错误

PIPIONE 2021-12-21 11:01:07
我正在尝试运行我的第一个机器学习模型。但是我收到以下错误。return_sequences=True)) 类型错误:init () 缺少 1 个必需的位置参数:'units'from tensorflow.python.keras.models import Sequentialfrom tensorflow.python.keras.layers import Dense, LSTM, Dropoutmodel = 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: ('关键字参数不理解:', 'input_dim')
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

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


input_shape在这种情况下,您应该使用该参数来指定第一层输入的形状。您的第一LSTM层input_shape应该有两个数据(timestepand feature,batch_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

_________________________________________________________________


查看完整回答
反对 回复 2021-12-21
  • 1 回答
  • 0 关注
  • 520 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信