一変量のエンコーダー/デコーダー LSTM モデルを構築しようとしています。このエラーが何度も発生しました:
ValueError: 入力に NaN、無限大、または dtype('float32') には大きすぎる値が含まれています。
同じエラーについて尋ねた他の投稿を既に検索して読んでいますが、データに nan 値がないと確信しています。
LSTM の非表示の計算のために nan 値が生成されました。
エポックごとにループを実行して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, kernel_initializer=kernelInitializer, stateful=False ,activation=actFunc, return_sequences=False))
model.add(Dropout(dropOutRate))
randSeed = randSeed + 1
kernelInitializer = RandomNormal(seed=randSeed)
model.add(Dense(numFeat, kernel_initializer=kernelInitializer, activation='linear'))
model.compile(loss='mean_squared_error', optimizer=optimizer, metrics=['accuracy'])
Train_X
形状は (362, 3, 27)
必要に応じて詳細をお知らせします。