Spaces:
Runtime error
Runtime error
| import numpy as np | |
| import seaborn as sns | |
| import matplotlib.pyplot as plt | |
| from PIL import Image | |
| import matplotlib.pyplot as plt | |
| def processImage(st,name,autoencoder): | |
| image = Image.open(name) | |
| image = image.resize((100, 100)).convert('L') | |
| image_array = np.array(image).astype('float32') / 255.0 # Normalisation | |
| image_array = np.expand_dims(image_array, axis=0) | |
| predicted_image = autoencoder.predict(image_array) | |
| plt.figure(figsize=(4, 2)) | |
| # Image originale | |
| plt.subplot(1, 2, 1) | |
| plt.imshow(image_array[0], cmap='gray') | |
| plt.title("Original") | |
| plt.axis('off') | |
| # Image reconstruite | |
| plt.subplot(1, 2, 2) | |
| plt.imshow(predicted_image[0], cmap='gray') | |
| plt.title("Reconstruite") | |
| plt.axis('off') | |
| plt.tight_layout() | |
| from tensorflow.keras.losses import MeanSquaredError | |
| mse = MeanSquaredError() | |
| loss_value = mse(image_array, predicted_image).numpy() | |
| st.write("MSE Loss:", loss_value) | |
| st.pyplot(plt) | |
| def plusloin(st,modele): | |
| 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. | |
| 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. | |
| 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. | |
| """) | |
| imgName = st.selectbox( | |
| "Choix de l'image a predire:", | |
| ('book.jpg','car.jpg', 'toy.jpg','joystick.jpg','chess.jpg')) | |
| st.write('Image choisie:', imgName) | |
| processImage(st,imgName,modele) | |
| st.image("autoencoder.png", use_column_width=True) |