Просмотр исходного кода

ajout des images des essais et tentative de faire fonctionner les fonctions d'activation

Virgile
Virgile 4 лет назад
Родитель
Сommit
b7a77ae849
21 измененных файлов: 119 добавлений и 39 удалений
  1. 3
    3
      code/fonctions_activations_classiques/fonction_activation.py
  2. Двоичные данные
      code/fonctions_activations_classiques/prediction_sinus.png
  3. Двоичные данные
      code/fonctions_activations_classiques/prediction_sinus_ReLU.png
  4. Двоичные данные
      code/fonctions_activations_classiques/prediction_sinus_sin.png
  5. Двоичные данные
      code/fonctions_activations_classiques/prediction_sinus_swish.png
  6. Двоичные данные
      code/fonctions_activations_classiques/prediction_sinus_tanh.png
  7. Двоичные данные
      code/fonctions_activations_classiques/prediction_sinus_x+sin.png
  8. Двоичные данные
      code/fonctions_activations_classiques/prediction_snake_8neuronne.png
  9. Двоичные данные
      code/fonctions_activations_classiques/prediction_x2_ReLU.png
  10. Двоичные данные
      code/fonctions_activations_classiques/prediction_x2_sin.png
  11. Двоичные данные
      code/fonctions_activations_classiques/prediction_x2_snake.png
  12. Двоичные данные
      code/fonctions_activations_classiques/prediction_x2_swish.png
  13. Двоичные данные
      code/fonctions_activations_classiques/prediction_x2_tanh.png
  14. Двоичные данные
      code/fonctions_activations_classiques/prediction_x2_x+sin.png
  15. 14
    10
      code/fonctions_activations_classiques/sin.py
  16. 72
    0
      code/fonctions_activations_classiques/snake.py
  17. Двоичные данные
      code/fonctions_activations_classiques/snake_donnée_augenté.png
  18. 5
    5
      code/fonctions_activations_classiques/snake_vs_ReLU.py
  19. 7
    6
      code/fonctions_activations_classiques/swish.py
  20. 11
    10
      code/fonctions_activations_classiques/tanh_vs_ReLU.py
  21. 7
    5
      code/fonctions_activations_classiques/x_sin.py

+ 3
- 3
code/fonctions_activations_classiques/fonction_activation.py Просмотреть файл







def snake(x, alpha=10):
def snake(x, alpha=5):
return (x + tf.sin(x)**2/alpha) return (x + tf.sin(x)**2/alpha)




def x_sin(x,alpha=1.0):
def x_sin(x,alpha=5):
return (x + tf.sin(x)/alpha) return (x + tf.sin(x)/alpha)


def sin(x,alpha=1.0):
def sin(x,alpha=5):
return(tf.sin(x)/alpha) return(tf.sin(x)/alpha)





Двоичные данные
code/fonctions_activations_classiques/prediction_sinus.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_sinus_ReLU.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_sinus_sin.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_sinus_swish.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_sinus_tanh.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_sinus_x+sin.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_snake_8neuronne.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_x2_ReLU.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_x2_sin.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_x2_snake.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_x2_swish.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_x2_tanh.png Просмотреть файл


Двоичные данные
code/fonctions_activations_classiques/prediction_x2_x+sin.png Просмотреть файл


+ 14
- 10
code/fonctions_activations_classiques/sin.py Просмотреть файл

from Creation_donnee import * from Creation_donnee import *
import numpy as np import numpy as np


w=10
n=20 n=20
#création de la base de donnéé #création de la base de donnéé
X,Y=creation_sin(-15,-8,n,1,)
X2,Y2=creation_sin(10,18,n,1,)
X,Y=creation_sin(-1.5,-1,n,w)
X2,Y2=creation_sin(1,1.5,n,w)
X=np.concatenate([X,X2]) X=np.concatenate([X,X2])
Y=np.concatenate([Y,Y2]) Y=np.concatenate([Y,Y2])


n=10000 n=10000
Xv,Yv=creation_sin(-20,20,n,1)
Xv,Yv=creation_sin(-3,3,n,w)








model_sin.add(tf.keras.Input(shape=(1,))) model_sin.add(tf.keras.Input(shape=(1,)))


model_sin.add(tf.keras.layers.Dense(512, activation=sin))



# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
# model_sin.add(tf.keras.layers.Dense(512, activation=sin))
# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
model_sin.add(tf.keras.layers.Dense(8, activation=sin))
model_sin.add(tf.keras.layers.Dense(1)) model_sin.add(tf.keras.layers.Dense(1))


opti=tf.keras.optimizers.Adam() opti=tf.keras.optimizers.Adam()


model_sin.summary() model_sin.summary()


model_sin.fit(X, Y, batch_size=1, epochs=10, shuffle='True',validation_data=(Xv, Yv))
model_sin.fit(X, Y, batch_size=16, epochs=1000, shuffle='True',validation_data=(Xv, Yv))






plt.figure() plt.figure()
plt.plot(X,Y,'x',label='donnée') plt.plot(X,Y,'x',label='donnée')
plt.plot(Xv,Yv,label="validation") plt.plot(Xv,Yv,label="validation")
plt.plot(X,Y_predis_sin,'o',label='prediction sur les donné avec sin comme activation')
plt.plot(Xv,Y_predis_validation_sin,label='prediction sur la validation avec sin comme activation')
plt.plot(X,Y_predis_sin,'o',label='prediction sur les données avec sin ')
plt.plot(Xv,Y_predis_validation_sin,label='prediction sur la validation avec sin')
plt.legend() plt.legend()
plt.show() plt.show()



+ 72
- 0
code/fonctions_activations_classiques/snake.py Просмотреть файл

# -*- coding: utf-8 -*-
"""
Created on Wed Nov 24 16:58:44 2021

@author: virgi
"""





import tensorflow as tf
import matplotlib.pyplot as plt
from fonction_activation import *

from Creation_donnee import *
import numpy as np

w=10
n=20000
#création de la base de donnéé
X,Y=creation_sin(-1.5,-1,n,w)
X2,Y2=creation_sin(1,1.5,n,w)
X=np.concatenate([X,X2])
Y=np.concatenate([Y,Y2])

n=10000
Xv,Yv=creation_sin(-3,3,n,w)




model_sin=tf.keras.models.Sequential()

model_sin.add(tf.keras.Input(shape=(1,)))

# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
# model_sin.add(tf.keras.layers.Dense(512, activation=sin))
# model_sin.add(tf.keras.layers.Dense(64, activation=sin))
model_sin.add(tf.keras.layers.Dense(512, activation=snake))
model_sin.add(tf.keras.layers.Dense(1))

opti=tf.keras.optimizers.Adam()

model_sin.compile(opti, loss='mse', metrics=['accuracy'])


model_sin.summary()

model_sin.fit(X, Y, batch_size=16, epochs=10, shuffle='True',validation_data=(Xv, Yv))




Y_predis_sin=model_sin.predict(X)
Y_predis_validation_sin=model_sin.predict(Xv)




plt.figure()
plt.plot(X,Y,'x',label='donnée')
plt.plot(Xv,Yv,label="validation")
plt.plot(X,Y_predis_sin,'o',label='prediction sur les données avec sin ')
plt.plot(Xv,Y_predis_validation_sin,label='prediction sur la validation avec sin')
plt.legend()
plt.show()



Двоичные данные
code/fonctions_activations_classiques/snake_donnée_augenté.png Просмотреть файл


+ 5
- 5
code/fonctions_activations_classiques/snake_vs_ReLU.py Просмотреть файл

w=10 w=10
n=20 n=20
#création de la base de donnéé #création de la base de donnéé
X,Y=creation_sin(-1.5,-1,n,w,)
X2,Y2=creation_sin(1,1.5,n,w,)
X,Y=creation_sin(-1.5,-1,n,w)
X2,Y2=creation_sin(1,1.5,n,w)
X=np.concatenate([X,X2]) X=np.concatenate([X,X2])
Y=np.concatenate([Y,Y2]) Y=np.concatenate([Y,Y2])


n=10000 n=10000
Xv,Yv=creation_sin(-2,2,n,w)
Xv,Yv=creation_sin(-3,3,n,w)




model_ReLU=tf.keras.models.Sequential() model_ReLU=tf.keras.models.Sequential()
plt.figure() plt.figure()
plt.plot(X,Y,'x',label='donnée') plt.plot(X,Y,'x',label='donnée')
plt.plot(Xv,Yv,label="validation") plt.plot(Xv,Yv,label="validation")
plt.plot(X,Y_predis_snake,'o',label='prediction sur les donné avec snake comme activation')
plt.plot(Xv,Y_predis_validation_snake,label='prediction sur la validation avec snake comme activation')
plt.plot(X,Y_predis_snake,'o',label='prediction sur les données avec snake')
plt.plot(Xv,Y_predis_validation_snake,label='prediction sur la validation avec snake')
plt.legend() plt.legend()
plt.show() plt.show()



+ 7
- 6
code/fonctions_activations_classiques/swish.py Просмотреть файл

from Creation_donnee import * from Creation_donnee import *
import numpy as np import numpy as np


w=10
n=20 n=20
#création de la base de donnéé #création de la base de donnéé
X,Y=creation_sin(-15,-8,n,1,)
X2,Y2=creation_sin(10,18,n,1,)
X,Y=creation_x2(-1.5,-1,n)
X2,Y2=creation_x2(1,1.5,n)
X=np.concatenate([X,X2]) X=np.concatenate([X,X2])
Y=np.concatenate([Y,Y2]) Y=np.concatenate([Y,Y2])


n=10000 n=10000
Xv,Yv=creation_sin(-20,20,n,1)
Xv,Yv=creation_x2(-3,3,n)








model_swish.summary() model_swish.summary()


model_swish.fit(X, Y, batch_size=1, epochs=10, shuffle='True',validation_data=(Xv, Yv))
model_swish.fit(X, Y, batch_size=1, epochs=16, shuffle='True',validation_data=(Xv, Yv))






plt.figure() plt.figure()
plt.plot(X,Y,'x',label='donnée') plt.plot(X,Y,'x',label='donnée')
plt.plot(Xv,Yv,label="validation") plt.plot(Xv,Yv,label="validation")
plt.plot(X,Y_predis_swish,'o',label='prediction sur les donné avec swish comme activation')
plt.plot(Xv,Y_predis_validation_swish,label='prediction sur la validation avec swish comme activation')
plt.plot(X,Y_predis_swish,'o',label='prediction sur les données avec swish')
plt.plot(Xv,Y_predis_validation_swish,label='prediction sur la validation avec swish')
plt.legend() plt.legend()
plt.show() plt.show()



+ 11
- 10
code/fonctions_activations_classiques/tanh_vs_ReLU.py Просмотреть файл



from Creation_donnee import * from Creation_donnee import *
import numpy as np import numpy as np
w=10
n=20 n=20
#création de la base de donnéé #création de la base de donnéé
X,Y=creation_sin(-15,-8,n,1,)
X2,Y2=creation_sin(10,18,n,1,)
X,Y=creation_x2(-1.5,-1,n)
X2,Y2=creation_x2(1,1.5,n)
X=np.concatenate([X,X2]) X=np.concatenate([X,X2])
Y=np.concatenate([Y,Y2]) Y=np.concatenate([Y,Y2])


n=10000 n=10000
Xv,Yv=creation_sin(-20,20,n,1)
Xv,Yv=creation_x2(-3,3,n)





model_ReLU=tf.keras.models.Sequential() model_ReLU=tf.keras.models.Sequential()






model_ReLU.fit(X, Y, batch_size=1, epochs=10, shuffle='True',validation_data=(Xv, Yv))
model_ReLU.fit(X, Y, batch_size=16, epochs=50, shuffle='True',validation_data=(Xv, Yv))








model_tanh.summary() model_tanh.summary()


model_tanh.fit(X, Y, batch_size=1, epochs=10, shuffle='True',validation_data=(Xv, Yv))
model_tanh.fit(X, Y, batch_size=16, epochs=50, shuffle='True',validation_data=(Xv, Yv))






plt.figure() plt.figure()
plt.plot(X,Y,'x',label='donnée') plt.plot(X,Y,'x',label='donnée')
plt.plot(Xv,Yv,label="validation") plt.plot(Xv,Yv,label="validation")
plt.plot(X,Y_predis_ReLU,'o',label='prediction sur les donné')
plt.plot(Xv,Y_predis_validation_ReLU,label='prediction sur la validation')
plt.plot(X,Y_predis_ReLU,'o',label='prediction sur les données avec ReLU')
plt.plot(Xv,Y_predis_validation_ReLU,label='prediction sur la validation avec ReLU')
plt.legend() plt.legend()
plt.show() plt.show()


plt.figure() plt.figure()
plt.plot(X,Y,'x',label='donnée') plt.plot(X,Y,'x',label='donnée')
plt.plot(Xv,Yv,label="validation") plt.plot(Xv,Yv,label="validation")
plt.plot(X,Y_predis_tanh,'o',label='prediction sur les donné avec tanh comme activation')
plt.plot(Xv,Y_predis_validation_tanh,label='prediction sur la validation avec tanh comme activation')
plt.plot(X,Y_predis_tanh,'o',label='prediction sur les données avec tanh ')
plt.plot(Xv,Y_predis_validation_tanh,label='prediction sur la validation avec tanh ')
plt.legend() plt.legend()
plt.show() plt.show()



+ 7
- 5
code/fonctions_activations_classiques/x_sin.py Просмотреть файл

from Creation_donnee import * from Creation_donnee import *
import numpy as np import numpy as np


w=10
n=20 n=20
#création de la base de donnéé #création de la base de donnéé
X,Y=creation_sin(-15,-8,n,1,)
X2,Y2=creation_sin(10,18,n,1,)
X,Y=creation_sin(-1.5,-1,n,w)
X2,Y2=creation_sin(1,1.5,n,w)
X=np.concatenate([X,X2]) X=np.concatenate([X,X2])
Y=np.concatenate([Y,Y2]) Y=np.concatenate([Y,Y2])


n=10000 n=10000
Xv,Yv=creation_sin(-20,20,n,1)
Xv,Yv=creation_sin(-3,3,n,w)







plt.figure() plt.figure()
plt.plot(X,Y,'x',label='donnée') plt.plot(X,Y,'x',label='donnée')
plt.plot(Xv,Yv,label="validation") plt.plot(Xv,Yv,label="validation")
plt.plot(X,Y_predis_xsin,'o',label='prediction sur les donné avec x+sin comme activation')
plt.plot(Xv,Y_predis_validation_xsin,label='prediction sur la validation avec x+sin comme activation')
plt.plot(X,Y_predis_xsin,'o',label='prediction sur les données avec x+sin ')
plt.plot(Xv,Y_predis_validation_xsin,label='prediction sur la validation avec x+sin')
plt.legend() plt.legend()
plt.show() plt.show()



Загрузка…
Отмена
Сохранить