pechaut commited on
Commit
80defca
1 Parent(s): 2fa9096

Upload plusloin.py

Browse files
Files changed (1) hide show
  1. streamlit_presentation/plusloin.py +59 -0
streamlit_presentation/plusloin.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import seaborn as sns
3
+ import matplotlib.pyplot as plt
4
+ from PIL import Image
5
+ import matplotlib.pyplot as plt
6
+
7
+
8
+
9
+ def processImage(st,name,autoencoder):
10
+ image = Image.open(name)
11
+ image = image.resize((100, 100)).convert('L')
12
+ image_array = np.array(image).astype('float32') / 255.0 # Normalisation
13
+ image_array = np.expand_dims(image_array, axis=0)
14
+
15
+ predicted_image = autoencoder.predict(image_array)
16
+
17
+
18
+ plt.figure(figsize=(4, 2))
19
+
20
+ # Image originale
21
+ plt.subplot(1, 2, 1)
22
+ plt.imshow(image_array[0], cmap='gray')
23
+ plt.title("Original")
24
+ plt.axis('off')
25
+
26
+ # Image reconstruite
27
+ plt.subplot(1, 2, 2)
28
+ plt.imshow(predicted_image[0], cmap='gray')
29
+ plt.title("Reconstruite")
30
+ plt.axis('off')
31
+
32
+ plt.tight_layout()
33
+
34
+
35
+ from tensorflow.keras.losses import MeanSquaredError
36
+ mse = MeanSquaredError()
37
+
38
+ loss_value = mse(image_array, predicted_image).numpy()
39
+ st.write("MSE Loss:", loss_value)
40
+ st.pyplot(plt)
41
+
42
+
43
+ def plusloin(st,modele):
44
+
45
+ st.write("""Une des pistes exploratoires etait d'entrainer un autoencoder a reconstruire les images d'une categorie unique, et d'utiliser le loss MSE comme discriminant pour les autres categories.
46
+
47
+ Ci-dessous nous proposons un modele entraine sur la categorie 10, livres et revues, et regardons ce que donne la loss sur d'autres categories.
48
+
49
+ Malheureusement, les pochettes de livres sont tres generiques, les revues sont illustrees de photos non specifiques, aussi le modele s'avere aussi bon, parfois meilleur, a reconstruire les autres categories.
50
+ """)
51
+
52
+ imgName = st.selectbox(
53
+ "Choix de l'image a predire:",
54
+ ('book.jpg','car.jpg', 'toy.jpg','joystick.jpg','chess.jpg'))
55
+
56
+ st.write('Image choisie:', imgName)
57
+
58
+ processImage(st,imgName,modele)
59
+ st.image("autoencoder.png", use_column_width=True)