关于python:Keras LSTM神经网:TypeError:LSTM()缺少1个必需的位置参数:’Y’

Keras LSTM neural net: TypeError: LSTM() missing 1 required positional argument: 'Y'

我正在尝试使用Keras(2.2.0版)和TensorFlow(1.1.0版)来训练LSTM神经网络。我知道有更新的TensorFlow版本,但不幸的是我在安装它们时遇到了一些问题。但是,我不认为我的问题与张量流版本有关。

这就是我的keras代码的样子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[...] from keras.layers import Dense, Dropout, LeakyReLU, LSTM, Activation, Dense, Dropout, Input, Embedding

def LSTM(X,Y):
    inputDimension = len(X[0])
    inputSize = len(X)

    # create the model
    model = Sequential()
    model.add(Embedding(input_length=inputDimension,input_dim=inputDimension,output_dim=256))
    model.add(LSTM(100))
    model.add(Dropout(0.2))
    model.add(Dense(1, activation='sigmoid'))
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    model.fit(X,Y,epochs=3,batch_size=64)
    return model

每当我尝试运行它时,都会出现以下错误消息:

Traceback (most recent call last):

File"Main.py", line 208, in lstmModel = ann.LSTM(scaledTrainingX,trainingY)
File"ann.py", line 158, in LSTM model.add(LSTM(100))
TypeError: LSTM() missing 1 required positional argument: 'Y'

我在StackOverflow上发现了这个问题,但解决方案表明没有帮助,因为我没有使用生成器来训练我的网络。

任何帮助使这个网络运行将是非常感谢。非常感谢你。


在其中创建模型的函数LSTM(X,Y)隐藏了keras lstm层。所以当你打电话的时候:

1
model.add(LSTM(100))

您确实在调用您定义的函数。您需要将此函数重命名为其他函数。