首页 > 解决方案 > Keras LSTM - “检查模型目标时出错:预期没有数据,但得到:”数据

问题描述

我正在做简单的序列预测。我的模型和数据如下所示:

def generate_rnn(input_shape):
    In = Input(shape=(input_shape[1], 1))
    x = LSTM(4)(In)
    x = Flatten()(x) # I tried both with and without flatten, same results
    Out = Dense(1)(x)
    
    model = Model([In, Out])
    model.compile(optimizer=Adam(), loss='MSE', metrics=['mse'])
    
    return model

X = np.random.rand(100, 5)
y = np.random.rand(100, 1)
X = X.reshape(X.shape[0], X.shape[1], 1)

rnn = generate_rnn(X.shape)
rnn.fit(X, y, epochs=10)

第一次运行程序时,在函数调用时,rnn.fit()我收到以下错误消息:

文件“C:\Users\achib\Anaconda3\envs\deep\lib\site-packages\tensorflow_core\python\keras\backend.py”,第 1237 行,在 dtype 中返回 x.dtype.base_dtype.name

AttributeError:“NoneType”对象没有属性“dtype”

如果我rnn.fit()在控制台中再次运行,我会收到以下错误消息:

ValueError: ('检查模型目标时出错:预期没有数据,但得到:',

然后我的y变量被打印出来。我之前在 Keras 使用过 LSTM 网络,但这是我第一次遇到这样的问题?有什么帮助吗?

标签: pythonkeraslstm

解决方案


模型类的文档-> https://keras.io/api/models/model/#model-class

据此,模型类必须将输入和输出作为不同的参数接收,而不是作为同一列表的一部分。就是这样——

ValueError: ('检查模型目标时出错:预期没有数据,但得到:',

方法。模型的目标变量 (y) 为空。因此,删除方括号应该会有所帮助。

希望这有帮助。

愿原力与你同在。


推荐阅读