问题描述
我正在尝试构建单变量编码器-解码器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 (将#修改为@)