From 09fc8b4781e820c5f8f954a6ac2b8add10a3b914 Mon Sep 17 00:00:00 2001 From: Valeriu Tocitu Date: Mon, 23 Feb 2026 15:19:19 -0600 Subject: [PATCH 1/2] push changes --- tensorflow_image.py | 3 +++ tensorflow_nlp.py | 3 +++ tensorflow_timeseries_regression.py | 26 ++++++++++++++++---------- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/tensorflow_image.py b/tensorflow_image.py index f0a737a..8654666 100644 --- a/tensorflow_image.py +++ b/tensorflow_image.py @@ -30,6 +30,9 @@ from tensorflow.keras.optimizers import * from tensorflow.keras.callbacks import ReduceLROnPlateau from tensorflow.keras import Model, Input +import ssl +import certifi +ssl._create_default_https_context = lambda: ssl.create_default_context(cafile=certifi.where()) def get_available_devices(): local_device_protos = device_lib.list_local_devices() diff --git a/tensorflow_nlp.py b/tensorflow_nlp.py index 8255dc2..bcadea2 100644 --- a/tensorflow_nlp.py +++ b/tensorflow_nlp.py @@ -19,6 +19,9 @@ from lime.lime_text import LimeTextExplainer from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences +import ssl +import certifi +ssl._create_default_https_context = lambda: ssl.create_default_context(cafile=certifi.where()) # Load the IMDb dataset (train_data, train_labels), (test_data, test_labels) = keras.datasets.imdb.load_data(num_words=10000) diff --git a/tensorflow_timeseries_regression.py b/tensorflow_timeseries_regression.py index 28a90dd..dcf1d45 100644 --- a/tensorflow_timeseries_regression.py +++ b/tensorflow_timeseries_regression.py @@ -5,6 +5,9 @@ # In[33]: +import ssl +import certifi +ssl._create_default_https_context = lambda: ssl.create_default_context(cafile=certifi.where()) from tensorflow.keras.layers import * from tensorflow.keras.models import * @@ -312,7 +315,12 @@ def evaluate_multi_timeseries_model(timeseries_df, n_folds=5, multivar=False): origin='https://storage.googleapis.com/tensorflow/tf-keras-datasets/jena_climate_2009_2016.csv.zip', fname='jena_climate_2009_2016.csv.zip', extract=True) -csv_path, _ = os.path.splitext(zip_path) #We load the dataset in a csv_file +# On macOS the zip extracts to a folder, so we need to find the CSV inside it +extracted = os.path.splitext(zip_path)[0] +if os.path.isdir(extracted): + csv_path = os.path.join(extracted, 'jena_climate_2009_2016.csv') +else: + csv_path = extracted @@ -540,10 +548,10 @@ def evaluate_timeseries_model(df, n_folds=5, multivar=False): # Basic ANN class EarlyStoppingCallback(tf.keras.callbacks.Callback): - def on_epoch_end(self,epoch, logs=None): - if logs['accuracy'] >0.90: - print("Accuracy greater than 90%. Stopping Training.") - self.model.stop_training=True + def on_epoch_end(self, epoch, logs=None): + if logs['val_loss'] < 0.54: + print("Val loss threshold reached. Stopping.") + self.model.stop_training = True def val_dnn_model(epochs, X_train, Y_train, X_val, Y_val, callbacks=None): model = tf.keras.models.Sequential([ @@ -581,11 +589,11 @@ def val_dnn_model(epochs, X_train, Y_train, X_val, Y_val, callbacks=None): def vtoc_regression_model(norm, model_type): if model_type=='linear': model = Sequential() - model.add(norm()) + model.add(norm) model.add(Dense(1)) else: model = Sequential() - model.add(norm()) + model.add(norm) model.add(Dense(64, activation='relu')) model.add(Dense(64, activation='relu')) model.add(Dense(1)) @@ -605,7 +613,7 @@ def eval_regression_data(dataset, target): X_train, X_test, Y_train, Y_test = train_test_split(X,Y, test_size=0.3) horsepower = np.array(X_train['Horsepower']).astype('float32') - horsepower_normalizer = Normalization(input_shape=[1,], axis=None) + horsepower_normalizer = Normalization(axis=None) horsepower_normalizer.adapt(horsepower) linear_model=vtoc_regression_model(horsepower_normalizer, model_type='linear') @@ -627,5 +635,3 @@ def eval_regression_data(dataset, target): sep=' ', skipinitialspace=True) eval_regression_data(raw_dataset, 'MPG') - -# In[ ]: \ No newline at end of file From 15880b68b1cf8c9f10e3a02f941ffaac737561a5 Mon Sep 17 00:00:00 2001 From: Valeriu Tocitu Date: Mon, 23 Feb 2026 16:36:19 -0600 Subject: [PATCH 2/2] more updates --- .DS_Store | Bin 6148 -> 6148 bytes tensorflow_timeseries_regression.py | 22 ++++++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.DS_Store b/.DS_Store index b4e0c84f693e6145f80c9447dd68793ced07ead2..2bb7d40deabebd7f01c7722a9efd954dc4a2131c 100644 GIT binary patch delta 115 zcmZoMXfc=&$sNy-%22^jz>vd`xLJ^6IkP7R0|SEykekVn3zR~VX2@emWGDfO=L1=K zKrML;>7F_H$w@i+NkBaU3=E8ufVAF!FkoQV%)>I1akC)XH^zw#Dx29k{_+C=H9a2R delta 53 zcmZoMXfc=&$(_g$&ydWJ!;r{OyjhTAIWr^2<`9;djEriN-?2JRZe|f@Vw|-39xE%; JW_FIh`~Zw~4+Q`K diff --git a/tensorflow_timeseries_regression.py b/tensorflow_timeseries_regression.py index dcf1d45..7a5da8e 100644 --- a/tensorflow_timeseries_regression.py +++ b/tensorflow_timeseries_regression.py @@ -598,7 +598,7 @@ def vtoc_regression_model(norm, model_type): model.add(Dense(64, activation='relu')) model.add(Dense(1)) - model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.1), loss='mean_absolute_error') + model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.01), loss='mean_absolute_error') return model @@ -611,15 +611,23 @@ def eval_regression_data(dataset, target): Y=dataset[target] X=dataset.loc[:, dataset.columns != target] X_train, X_test, Y_train, Y_test = train_test_split(X,Y, test_size=0.3) - horsepower = np.array(X_train['Horsepower']).astype('float32') + horsepower = np.array(X_train['Horsepower']).astype('float32').reshape(-1, 1) - horsepower_normalizer = Normalization(axis=None) + horsepower_normalizer = Normalization(axis=-1) horsepower_normalizer.adapt(horsepower) linear_model=vtoc_regression_model(horsepower_normalizer, model_type='linear') - horsepower_test = np.array(X_test['Horsepower']).astype('float32') - history = linear_model.fit(horsepower, Y_train, validation_data=(horsepower_test, Y_test), epochs=100, verbose=2) - test_results = linear_model.predict(horsepower_test) + horsepower_test = np.array(X_test['Horsepower']).astype('float32').reshape(-1, 1) + + # Scale Y so loss is in a sensible range + y_mean = Y_train.mean() + y_std = Y_train.std() + Y_train_scaled = (Y_train - y_mean) / y_std + Y_test_scaled = (Y_test - y_mean) / y_std + + early_stopping = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, restore_best_weights=True) + history = linear_model.fit(horsepower, Y_train_scaled, validation_data=(horsepower_test, Y_test_scaled), epochs=100, verbose=2, callbacks=[early_stopping]) + test_results = linear_model.predict(horsepower_test) * y_std + y_mean # unscale predictions return test_results @@ -635,3 +643,5 @@ def eval_regression_data(dataset, target): sep=' ', skipinitialspace=True) eval_regression_data(raw_dataset, 'MPG') + +# In[ ]: \ No newline at end of file