Explorar el Código

ajout du notebook

Emile
Emile Siboulet hace 4 años
padre
commit
90b90e4c3d
Se han modificado 50 ficheros con 712 adiciones y 7 borrados
  1. 11
    0
      code/.ipynb_checkpoints/README-checkpoint.md
  2. 246
    0
      code/.ipynb_checkpoints/notepad_siboulet-checkpoint.ipynb
  3. 5
    1
      code/README.md
  4. 98
    0
      code/RNN_prediction_meteo/.ipynb_checkpoints/training-checkpoint.py
  5. BIN
      code/RNN_prediction_meteo/images/100_199_fig2.png
  6. BIN
      code/RNN_prediction_meteo/images/100_199_fig3.png
  7. BIN
      code/RNN_prediction_meteo/images/100_199_fig4.png
  8. BIN
      code/RNN_prediction_meteo/images/118_61_fig2.png
  9. BIN
      code/RNN_prediction_meteo/images/118_61_fig3.png
  10. BIN
      code/RNN_prediction_meteo/images/118_61_fig4.png
  11. BIN
      code/RNN_prediction_meteo/images/125_125_fig2.png
  12. BIN
      code/RNN_prediction_meteo/images/125_125_fig3.png
  13. BIN
      code/RNN_prediction_meteo/images/125_125_fig4.png
  14. BIN
      code/RNN_prediction_meteo/images/138_43_fig2.png
  15. BIN
      code/RNN_prediction_meteo/images/138_43_fig3.png
  16. BIN
      code/RNN_prediction_meteo/images/138_43_fig4.png
  17. BIN
      code/RNN_prediction_meteo/images/144_84_fig2.png
  18. BIN
      code/RNN_prediction_meteo/images/144_84_fig3.png
  19. BIN
      code/RNN_prediction_meteo/images/144_84_fig4.png
  20. BIN
      code/RNN_prediction_meteo/images/158_46_fig2.png
  21. BIN
      code/RNN_prediction_meteo/images/158_46_fig3.png
  22. BIN
      code/RNN_prediction_meteo/images/158_46_fig4.png
  23. BIN
      code/RNN_prediction_meteo/images/195_87_fig2.png
  24. BIN
      code/RNN_prediction_meteo/images/195_87_fig3.png
  25. BIN
      code/RNN_prediction_meteo/images/195_87_fig4.png
  26. BIN
      code/RNN_prediction_meteo/images/198_210_fig2.png
  27. BIN
      code/RNN_prediction_meteo/images/198_210_fig3.png
  28. BIN
      code/RNN_prediction_meteo/images/198_210_fig4.png
  29. BIN
      code/RNN_prediction_meteo/images/216_149_fig2.png
  30. BIN
      code/RNN_prediction_meteo/images/216_149_fig3.png
  31. BIN
      code/RNN_prediction_meteo/images/216_149_fig4.png
  32. BIN
      code/RNN_prediction_meteo/images/239_162_fig2.png
  33. BIN
      code/RNN_prediction_meteo/images/239_162_fig3.png
  34. BIN
      code/RNN_prediction_meteo/images/239_162_fig4.png
  35. BIN
      code/RNN_prediction_meteo/images/67_154_fig2.png
  36. BIN
      code/RNN_prediction_meteo/images/67_154_fig3.png
  37. BIN
      code/RNN_prediction_meteo/images/67_154_fig4.png
  38. BIN
      code/RNN_prediction_meteo/images/83_124_fig2.png
  39. BIN
      code/RNN_prediction_meteo/images/83_124_fig3.png
  40. BIN
      code/RNN_prediction_meteo/images/83_124_fig4.png
  41. BIN
      code/RNN_prediction_meteo/images/88_77_fig2.png
  42. BIN
      code/RNN_prediction_meteo/images/88_77_fig3.png
  43. BIN
      code/RNN_prediction_meteo/images/88_77_fig4.png
  44. 4
    3
      code/RNN_prediction_meteo/training.py
  45. 98
    0
      code/RNN_wilshire_5000/.ipynb_checkpoints/training-checkpoint.py
  46. BIN
      code/RNN_wilshire_5000/images/176_106_fig2.png
  47. BIN
      code/RNN_wilshire_5000/images/176_106_fig3.png
  48. BIN
      code/RNN_wilshire_5000/images/176_106_fig4.png
  49. 4
    3
      code/RNN_wilshire_5000/training.py
  50. 246
    0
      code/notepad_siboulet.ipynb

+ 11
- 0
code/.ipynb_checkpoints/README-checkpoint.md Ver fichero

@@ -0,0 +1,11 @@
# Répartition des codes

## fonctions_activations_classiques

Ce code démontre la mauvaise généralisation des fonctions d'activations classiques à des signaux périodiques.

Il tente de reproduire la figure de l'introduction

## RNN_*

Nécessite la librairie Optuna (https://optuna.org/) pour fonctionner

+ 246
- 0
code/.ipynb_checkpoints/notepad_siboulet-checkpoint.ipynb
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 5
- 1
code/README.md Ver fichero

@@ -4,4 +4,8 @@

Ce code démontre la mauvaise généralisation des fonctions d'activations classiques à des signaux périodiques.

Il tente de reproduire la figure de l'introduction
Il tente de reproduire la figure de l'introduction

## RNN_*

Nécessite la librairie Optuna (https://optuna.org/) pour fonctionner

+ 98
- 0
code/RNN_prediction_meteo/.ipynb_checkpoints/training-checkpoint.py Ver fichero

@@ -0,0 +1,98 @@
import tensorflow as tf
from matplotlib import pyplot as plt
import numpy as np
from Model import MyModel
import optuna

def objectif(trial) :
LEN_SEQ = trial.suggest_int('len_seq', 64,256)
PRED = 0.1
HIDDEN = trial.suggest_int('hidden',32,256)

model = MyModel(HIDDEN)

dataset = np.load('dataset.npy')
scale = (np.max(dataset) - np.min(dataset))
data = dataset/scale
shift = np.min(data)
data = data - shift

annee = np.array(list(range(len(data))))/365
annee = annee - annee[-1]
start_pred = int(len(data)*(1-PRED))
#print(len(data))
#print(start_pred)
plt.figure(1)
plt.plot(annee[:start_pred],data[:start_pred], label="apprentissage")
plt.plot(annee[start_pred:],data[start_pred:], label="validation")
plt.legend()
#plt.show()

X_train_tot = [data[0:start_pred-1]]
Y_train_tot = [data[1:start_pred]]

X_train_tot = np.expand_dims(np.array(X_train_tot),2)
Y_train_tot = np.expand_dims(np.array(Y_train_tot),2)

X_train = X_train_tot[:,:LEN_SEQ,:]
Y_train = Y_train_tot[:,:LEN_SEQ,:]

for i in range(len(X_train_tot[0]) - LEN_SEQ) :
X_train = np.concatenate((X_train, X_train_tot[:,i:i+LEN_SEQ,:]),0)
Y_train = np.concatenate((Y_train, Y_train_tot[:,i:i+LEN_SEQ,:]),0)
#print(X_train_tot.shape)
#print(X_train.shape)


model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['binary_crossentropy','mse'])
import os
os.system("rm -rf log_dir")

model.fit(x=X_train, y=Y_train, batch_size=16, epochs=5, shuffle=True)

Pred = X_train_tot.copy()
while len(Pred[0]) < len(data)+500 :
#print(len(data) - len(Pred[0]))
Pred = np.concatenate((Pred, np.array([[model.predict(Pred)[0][-1]]])),1)
Pred = Pred + shift
Pred = Pred * scale

data_Pred = np.squeeze(Pred)

plt.figure(2)
plt.clf()
plt.plot(annee[:start_pred],dataset[:start_pred], label="apprentissage")
plt.plot(annee[start_pred:],dataset[start_pred:], label="validation")
plt.plot(annee[start_pred:], data_Pred[start_pred:len(annee)], label="prediction")
plt.legend()
plt.savefig(f"images/{LEN_SEQ}_{HIDDEN}_fig2.png")

plt.figure(3)
plt.clf()
fig, axs = plt.subplots(2)
axs[0].plot(annee[:start_pred],dataset[:start_pred], label="apprentissage")
axs[0].plot(annee[start_pred:],dataset[start_pred:], label="validation")
axs[1].plot(annee[:start_pred],dataset[:start_pred], label="données")
axs[1].plot(annee[start_pred:], data_Pred[start_pred:len(annee)], label="prediction")
plt.legend()
plt.savefig(f"images/{LEN_SEQ}_{HIDDEN}_fig3.png")

annee_ex = np.array(list(range(len(data_Pred))))/365
annee_ex = annee_ex + annee[0]
plt.figure(4)
plt.clf()
plt.plot(annee[:start_pred],dataset[:start_pred], label="données")
plt.plot(annee_ex[start_pred:], data_Pred[start_pred:], label="prediction")
plt.legend()
plt.savefig(f"images/{LEN_SEQ}_{HIDDEN}_fig4.png")

loss = np.linalg.norm(dataset[start_pred:] - data_Pred[start_pred:len(dataset)])/(np.max(data_Pred[start_pred:]) - np.min(data_Pred[start_pred:]))
print(loss*100)
return loss
#plt.show()

if __name__ == "__main__" :
study = optuna.create_study()
study.optimize(objectif, n_trials=10)

BIN
code/RNN_prediction_meteo/images/100_199_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/100_199_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/100_199_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/118_61_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/118_61_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/118_61_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/125_125_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/125_125_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/125_125_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/138_43_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/138_43_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/138_43_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/144_84_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/144_84_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/144_84_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/158_46_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/158_46_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/158_46_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/195_87_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/195_87_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/195_87_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/198_210_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/198_210_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/198_210_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/216_149_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/216_149_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/216_149_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/239_162_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/239_162_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/239_162_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/67_154_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/67_154_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/67_154_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/83_124_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/83_124_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/83_124_fig4.png Ver fichero


BIN
code/RNN_prediction_meteo/images/88_77_fig2.png Ver fichero


BIN
code/RNN_prediction_meteo/images/88_77_fig3.png Ver fichero


BIN
code/RNN_prediction_meteo/images/88_77_fig4.png Ver fichero


+ 4
- 3
code/RNN_prediction_meteo/training.py Ver fichero

@@ -54,7 +54,7 @@ def objectif(trial) :

Pred = X_train_tot.copy()
while len(Pred[0]) < len(data)+500 :
print(len(data) - len(Pred[0]))
#print(len(data) - len(Pred[0]))
Pred = np.concatenate((Pred, np.array([[model.predict(Pred)[0][-1]]])),1)
Pred = Pred + shift
Pred = Pred * scale
@@ -93,5 +93,6 @@ def objectif(trial) :
return loss
#plt.show()

study = optuna.create_study()
study.optimize(objectif, n_trials=10)
if __name__ == "__main__" :
study = optuna.create_study()
study.optimize(objectif, n_trials=10)

+ 98
- 0
code/RNN_wilshire_5000/.ipynb_checkpoints/training-checkpoint.py Ver fichero

@@ -0,0 +1,98 @@
import tensorflow as tf
from matplotlib import pyplot as plt
import numpy as np
from Model import MyModel
import optuna

def objectif(trial) :
LEN_SEQ = trial.suggest_int('len_seq', 64,256)
PRED = 0.1
HIDDEN = trial.suggest_int('hidden',32,256)

model = MyModel(HIDDEN)

dataset = np.load('dataset.npy')
scale = (np.max(dataset) - np.min(dataset))
data = dataset/scale
shift = np.min(data)
data = data - shift

annee = np.array(list(range(len(data))))/365
annee = annee - annee[-1]
start_pred = int(len(data)*(1-PRED))
#print(len(data))
#print(start_pred)
plt.figure(1)
plt.plot(annee[:start_pred],data[:start_pred], label="apprentissage")
plt.plot(annee[start_pred:],data[start_pred:], label="validation")
plt.legend()
#plt.show()

X_train_tot = [data[0:start_pred-1]]
Y_train_tot = [data[1:start_pred]]

X_train_tot = np.expand_dims(np.array(X_train_tot),2)
Y_train_tot = np.expand_dims(np.array(Y_train_tot),2)

X_train = X_train_tot[:,:LEN_SEQ,:]
Y_train = Y_train_tot[:,:LEN_SEQ,:]

for i in range(len(X_train_tot[0]) - LEN_SEQ) :
X_train = np.concatenate((X_train, X_train_tot[:,i:i+LEN_SEQ,:]),0)
Y_train = np.concatenate((Y_train, Y_train_tot[:,i:i+LEN_SEQ,:]),0)
#print(X_train_tot.shape)
#print(X_train.shape)


model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['binary_crossentropy','mse'])
import os
os.system("rm -rf log_dir")

model.fit(x=X_train, y=Y_train, batch_size=16, epochs=5, shuffle=True)

Pred = X_train_tot.copy()
while len(Pred[0]) < len(data)+500 :
#print(len(data) - len(Pred[0]))
Pred = np.concatenate((Pred, np.array([[model.predict(Pred)[0][-1]]])),1)
Pred = Pred + shift
Pred = Pred * scale

data_Pred = np.squeeze(Pred)

plt.figure(2)
plt.clf()
plt.plot(annee[:start_pred],dataset[:start_pred], label="apprentissage")
plt.plot(annee[start_pred:],dataset[start_pred:], label="validation")
plt.plot(annee[start_pred:], data_Pred[start_pred:len(annee)], label="prediction")
plt.legend()
plt.savefig(f"images/{LEN_SEQ}_{HIDDEN}_fig2.png")

plt.figure(3)
plt.clf()
fig, axs = plt.subplots(2)
axs[0].plot(annee[:start_pred],dataset[:start_pred], label="apprentissage")
axs[0].plot(annee[start_pred:],dataset[start_pred:], label="validation")
axs[1].plot(annee[:start_pred],dataset[:start_pred], label="données")
axs[1].plot(annee[start_pred:], data_Pred[start_pred:len(annee)], label="prediction")
plt.legend()
plt.savefig(f"images/{LEN_SEQ}_{HIDDEN}_fig3.png")

annee_ex = np.array(list(range(len(data_Pred))))/365
annee_ex = annee_ex + annee[0]
plt.figure(4)
plt.clf()
plt.plot(annee[:start_pred],dataset[:start_pred], label="données")
plt.plot(annee_ex[start_pred:], data_Pred[start_pred:], label="prediction")
plt.legend()
plt.savefig(f"images/{LEN_SEQ}_{HIDDEN}_fig4.png")

loss = np.linalg.norm(dataset[start_pred:] - data_Pred[start_pred:len(dataset)])/(np.max(data_Pred[start_pred:]) - np.min(data_Pred[start_pred:]))
print(loss*100)
return loss
#plt.show()

if __name__ == "__main__" :
study = optuna.create_study()
study.optimize(objectif, n_trials=10)

BIN
code/RNN_wilshire_5000/images/176_106_fig2.png Ver fichero


BIN
code/RNN_wilshire_5000/images/176_106_fig3.png Ver fichero


BIN
code/RNN_wilshire_5000/images/176_106_fig4.png Ver fichero


+ 4
- 3
code/RNN_wilshire_5000/training.py Ver fichero

@@ -54,7 +54,7 @@ def objectif(trial) :

Pred = X_train_tot.copy()
while len(Pred[0]) < len(data)+500 :
print(len(data) - len(Pred[0]))
#print(len(data) - len(Pred[0]))
Pred = np.concatenate((Pred, np.array([[model.predict(Pred)[0][-1]]])),1)
Pred = Pred + shift
Pred = Pred * scale
@@ -93,5 +93,6 @@ def objectif(trial) :
return loss
#plt.show()

study = optuna.create_study()
study.optimize(objectif, n_trials=10)
if __name__ == "__main__" :
study = optuna.create_study()
study.optimize(objectif, n_trials=10)

+ 246
- 0
code/notepad_siboulet.ipynb
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


Cargando…
Cancelar
Guardar