Циклы разных наборов данных и прогнозирование с помощью LSTM - PullRequest
0 голосов
/ 03 февраля 2020

Я уже некоторое время работаю над 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, каким-то образом память не очищается должным образом.

Может ли кто-нибудь помочь с этим?

1 Ответ

0 голосов
/ 03 февраля 2020

Что вы получаете за это:

for i in ...: # Loop for different data set

...

model = None
# Create LSTM Model
model = Sequential()
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...