52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Created on Wed Sep 25 14:38:32 2024
|
|
|
|
@author: errobin
|
|
"""
|
|
|
|
# DS partie Train
|
|
# complétez/joué sur les hyperparamètres (vitesse d'apprentissage et nb epoch) et sur l'architecture du modèle pour l'entrainer et pour le sauver (une fois entrainé)
|
|
# ASTUCE un loss inférieur à 0.005 permets déjà d'obtenir des résultats intéréssants
|
|
|
|
|
|
import time
|
|
import tensorflow as tf
|
|
import numpy as np
|
|
|
|
|
|
X_train = np.genfromtxt('X_train.txt', delimiter=';')
|
|
Y_target = np.genfromtxt('Y_target.txt', delimiter=';')
|
|
|
|
# Partie ANN definition + entrainement
|
|
# *****************************************
|
|
model = tf.keras.models.Sequential()
|
|
|
|
model.add(tf.keras.layers.Dense(2048, activation="relu"))
|
|
model.add(tf.keras.layers.Dense(1024, activation="relu"))
|
|
model.add(tf.keras.layers.Dense(512, activation="relu"))
|
|
model.add(tf.keras.layers.Dense(256, activation="relu"))
|
|
model.add(tf.keras.layers.Dense(128, activation="relu"))
|
|
model.add(tf.keras.layers.Dense(64, activation="relu"))
|
|
model.add(tf.keras.layers.Dense(32, activation="relu"))
|
|
model.add(tf.keras.layers.Dense(1))
|
|
|
|
model.compile(
|
|
loss="mse",
|
|
optimizer="adam"
|
|
)
|
|
|
|
|
|
def scheduler(epoch): # dans cette fonction il est possible de faire des test if en fonction de epoch pour retourner différente valeur de la ???
|
|
return 0.0001
|
|
|
|
|
|
callback_vitesse_apprentissage = tf.keras.callbacks.LearningRateScheduler(scheduler)
|
|
###################################################################
|
|
|
|
start_time = time.time()
|
|
model.fit(X_train, Y_target, epochs=3, verbose=1, callbacks=[callback_vitesse_apprentissage])
|
|
end_time = time.time()
|
|
temps_cal = end_time - start_time
|
|
print(temps_cal)
|