Spaces:
Sleeping
Sleeping
| import tensorflow as tf | |
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| from tensorflow.keras.preprocessing.image import ImageDataGenerator | |
| from tensorflow.keras.applications import ResNet50 | |
| from tensorflow.keras.models import Model | |
| from tensorflow.keras.layers import Dense, GlobalAveragePooling2D | |
| from tensorflow.keras.optimizers import Adam | |
| # Laden der Validierungsdaten | |
| validation_datagen = ImageDataGenerator(rescale=1./255) | |
| validation_generator = validation_datagen.flow_from_directory( | |
| r'C:\Coding\BlockImageClassification\validation', | |
| target_size=(224, 224), | |
| batch_size=8, | |
| class_mode='categorical', | |
| shuffle=True # Mischt die Daten vor jeder Epoche | |
| ) | |
| # Laden des Modells | |
| base_model = ResNet50(weights='imagenet', include_top=False, input_shape=(224, 224, 3)) | |
| x = base_model.output | |
| x = GlobalAveragePooling2D()(x) | |
| x = Dense(1024, activation='relu')(x) | |
| predictions = Dense(3, activation='softmax')(x) | |
| model = Model(inputs=base_model.input, outputs=predictions) | |
| # Vorhersagen auf den Validierungsdaten | |
| predictions_in_percentage = model.predict(validation_generator) | |
| predictions = np.argmax(predictions_in_percentage, axis=-1) | |
| # Darstellen der Vorhersagen | |
| class_names = ['Bulbasaur', 'Charmander', 'Squirtle'] # Aktualisierte Klassennamen | |
| for i in range(len(predictions)): | |
| image, label = validation_generator[i] | |
| plt.imshow(image[0]) | |
| plt.title('pred. ' + class_names[predictions[i]] + ' war ' + class_names[np.argmax(label)] + ' ' + str(np.round(predictions_in_percentage[i], 2)), fontsize=8) | |
| plt.axis("off") | |
| plt.show() | |