[Python] Is there a way to stop training in the middle of an epoch with tensorflow?

Discussão em 'Python' iniciado por Stack, Março 13, 2025.

  1. Stack

    Stack Membro Participativo

    Just wondering if there is a way to save the highest accuracy and lowest loss in the middle of an epoch and using that as the score moving forward for the next epoch. Normally my data is maxed out at 43.56% accuracy but I've seen it go all the way up to above 46% in the middle of an epoch. Is there a way I can stop the epoch at that point and use that for the score to beat moving forward?

    Here's the code that I'm running right now

    import pandas as pd
    import numpy as np
    import pickle
    import random
    from skopt import BayesSearchCV
    from sklearn.neural_network import MLPRegressor
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense, Dropout, LSTM, Bidirectional, SimpleRNN, GRU
    from tensorflow.keras.wrappers.scikit_learn import KerasRegressor
    from tensorflow.keras import layers
    import tensorflow_docs as tfdocs
    import tensorflow as tf
    from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint
    import tensorflow_docs.modeling
    from tensorflow import keras
    import warnings
    warnings.filterwarnings("ignore")
    warnings.filterwarnings('ignore', category=DeprecationWarning)

    train_df = avenues[["LFA's", "Spend"]].sample(frac=0.8,random_state=0)
    test_df = avenues[["LFA's", "Spend"]].drop(train_df.index)
    train_df = clean_dataset(train_df)
    test_df = clean_dataset(test_df)
    train_df = train_df.reset_index(drop=True)
    test_df = test_df.reset_index(drop=True)
    train_stats = train_df.describe()
    train_stats = train_stats.pop("LFA's")
    train_stats = train_stats.transpose()
    train_labels = train_df.pop("LFA's").values
    test_labels = test_df.pop("LFA's").values
    normed_train_data = np.array(norm(train_df)).reshape((train_df.shape[0], 1, 1))
    normed_test_data = np.array(norm(test_df)).reshape((test_df.shape[0], 1, 1))
    model = KerasRegressor(build_fn=build_model, epochs=25,
    batch_size=1, verbose=0)
    gs = BayesSearchCV(model, param_grid, cv=3, n_iter=25, n_jobs=1,
    optimizer_kwargs={'base_estimator': 'RF'},
    fit_params={"callbacks": [es_acc, es_loss, tfdocs.modeling.EpochDots()]})
    try:
    gs.fit(normed_train_data, train_labels)
    except Exception as e:
    print(e)

    Continue reading...

Compartilhe esta Página