
Een vooraf getraind model laden
De eerste stap bij het werken met een vooraf getraind model is het verkrijgen van het model zelf. Er zijn verschillende populaire voorgetrainde modellen beschikbaar, zoals VGG, ResNet en Inception, die vaak worden gebruikt voor taken als beeldclassificatie en objectdetectie. In dit voorbeeld gebruiken we het VGG16-model, dat vooraf is getraind op de ImageNet-dataset.
Om het vooraf getrainde VGG16-model te laden, moeten we de TensorFlow-bibliotheek en de bijbehorende Keras-module gebruiken. Als u TensorFlow niet hebt geïnstalleerd, kunt u dit doen met de volgende opdracht:
''
pip installeer tensorflow
''
Zodra TensorFlow is geïnstalleerd, kunnen we doorgaan met het laden van het VGG16-model. Hier is de stapsgewijze uitleg van de code:
from tensorflow.keras.applications import VGG16 # Load the pretrained VGG16 model with the 'imagenet' weights model = VGG16(weights="imagenet")
In de bovenstaande code importeren we eerst de VGG16-klasse uit de module `tensorflow.keras.applications`. Vervolgens maken we een instantie van het VGG16-model door het argument `weights=”imagenet”` door te geven, dat het model instrueert om gewichten te laden die vooraf zijn getraind op de ImageNet-dataset.
Het vooraf getrainde model gebruiken
Nu we het vooraf getrainde VGG16-model hebben geladen, kunnen we het voor verschillende taken gebruiken, zoals beeldclassificatie. Om beeldclassificatie uit te voeren, moeten we het invoerbeeld voorbewerken om het compatibel te maken met het VGG16-model. Dit omvat het wijzigen van de grootte van de afbeelding, het normaliseren van pixelwaarden en het vergroten van de afmetingen.
import numpy as np from tensorflow.keras.preprocessing import image from tensorflow.keras.applications.vgg16 import preprocess_input # Load an example image and preprocess it img_path = "path/to/your/image.jpg" img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x)
In de bovenstaande code gebruiken we de `image`-module van `tensorflow.keras.preprocessing` om de invoerafbeelding te laden en voor te verwerken. Het formaat van de afbeelding is aangepast naar `(224, 224)` volgens de vereisten van het VGG16-model. Vervolgens converteren we de afbeelding naar een NumPy-array en breiden we de afmetingen uit zodat deze overeenkomen met de verwachte invoervorm. Ten slotte gebruiken we de functie `preprocess_input` van de module `tensorflow.keras.applications.vgg16` om de pixelwaarden te normaliseren.
Nu het invoerbeeld is voorbewerkt en gereed, kunnen we nu het vooraf getrainde VGG16-model gebruiken om een voorspelling te doen:
from tensorflow.keras.applications.vgg16 import decode_predictions # Make a prediction using the pretrained model predictions = model.predict(x) # Decode the prediction and print the top 3 results predicted_classes = decode_predictions(predictions, top=3) print(predicted_classes)
In het bovenstaande voorbeeld gebruiken we de methode `model.predict` om een voorspelling te genereren voor het invoerbeeld. De resulterende voorspellingen worden vervolgens gedecodeerd met behulp van de `decode_predictions`-functie van de `tensorflow.keras.applications.vgg16`-module om de top 3 van voorspelde klassen uit de ImageNet-dataset te onthullen.
Kortom, het laden en gebruiken van vooraf getrainde modellen in Python wordt eenvoudig gemaakt met de TensorFlow-bibliotheek. Deze aanpak kan de tijd en middelen die nodig zijn om nauwkeurige resultaten te bereiken aanzienlijk verminderen, waardoor het ongelooflijk waardevol is voor zowel beginnende als ervaren beoefenaars van machine learning.