Я уже некоторое время работаю над keras, LSTM, но все еще довольно новым.
Я сталкиваюсь с проблемой, когда мне нужно будет перезапускать Jupyter Notebook каждый раз, когда я тренируюсь и прогнозирую с помощью keras LSTM.
Это приведет к проблеме, когда мне потребуется l oop нескольких прогнозов с разными наборами данных, используя одну и ту же настройку модели LSTM.
Альтернативой является обучение и прогнозирование данных, заданных данными установить, перезапустить и запустить все после выполнения каждого прогноза, что будет очень утомительным процессом.
, например:
for i in ...: # Loop for different data set
...
# Create LSTM Model
model = Sequential()
model.add(LSTM(units=32,
activation='relu',
batch_input_shape=(1, timestep_n, feature_n),
return_sequences=True))
model.add(Dense(units=1,
activation='relu'))
model.compile(loss='mean_squared_error', optimizer=adam, metrics=['accuracy'])
...
# Train Model
model.fit(x, y, epochs=100)
...
# Predict
result = model.predict(x_p)
# End Loop for next data set
Я пытался очистить сеанс перед созданием каждой модели для тренировка, но предсказанные значения отличаются от того, когда я проводил одну тренировку и прогнозирование.
session = tf.get_default_session()
if session is not None:
session.close()
K.clear_session()
gc.collect()
Я также использовал случайное начальное число в надежде получить одно и то же значение при каждом запуске. Для согласованности.
SEED = 1
np.random.seed(SEED)
tf.set_random_seed(SEED)
random.seed(SEED)
Я подумываю объявить / создать «НОВУЮ» модель LSTM в каждом l oop для прогнозирования значений различных наборов данных, без необходимости вручную перезагружать ноутбук и запускать для каждого набор данных.
Даже если я выполняю del model
в конце l oop, каким-то образом память не очищается должным образом.
Может ли кто-нибудь помочь с этим?