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) |