使用LSTM时输入包含NaN

问题描述

我正在尝试构建单变量编码器-解码器LSTM模型。 我一次又一次收到此错误:

ValueError:输入包含NaN,无穷大或对于dtype('float32')而言太大的值。

我已经搜索并阅读了询问相同错误的其他帖子,但是, 我确定数据没有任何Nan值。

nan值是由于LSTM隐藏计算而产生的 使我对此感到确定的是:

我为每个纪元做了一个循环,以调用model.fit并打印历史记录。

for j in range(numEpoch):
  history = model.fit(trX,targetTRAIN,epochs=1,batch_size=batchSize,verbose=0,shuffle=False,validation_split=valdSplit)
  print(history.history)

它运作良好,直到numEpoch = 610(很抱歉我忘记了确切的数字),然后它开始显示nan作为验证损失。

这是我的模型定义:

numEpoch = 2000
batchSize = 1
actFunc = 'relu'
valdSplit=0.1
dropOutRate=0.2
optimizer = SGD(lr=0.01,momentum=0.9)


model = Sequential()
randSeed = randSeed + 1
kernelInitializer = RandomNormal(seed=randSeed)
model.add(LSTM(30,batch_input_shape=(batchSize,timeStep,numFeat),activation=actFunc,kernel_initializer=kernelInitializer,dropout=dropOutRate,stateful=True,return_sequences=True))
model.add(Dropout(dropOutRate))
model.add(LSTM(20,stateful=False,return_sequences=False))
model.add(Dropout(dropOutRate))
randSeed = randSeed + 1
kernelInitializer = RandomNormal(seed=randSeed)
model.add(Dense(numFeat,activation='linear'))
model.compile(loss='mean_squared_error',optimizer=optimizer,metrics=['accuracy'])

Train_X的形状是(362,3,27)

如果需要,我很乐意提供更多细节。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...