Opgelost: hoe een voorgetraind model in pytorch te laden

Laatste update: 09/11/2023

hoe een vooraf getraind model te laden In de wereld van machine learning en kunstmatige intelligentie is het gebruikelijk om met **vooraf getrainde modellen** te werken om snellere en nauwkeurigere resultaten te behalen. Deze modellen zijn al getraind op grote datasets en zijn in wezen klaar voor gebruik. Het laden van een vooraf getraind model kan een aanzienlijke hoeveelheid tijd en middelen besparen in vergelijking met helemaal opnieuw beginnen. In dit artikel zullen we onderzoeken hoe een vooraf getraind model kan worden geladen met behulp van Python, waarbij we ons specifiek richten op de veelgebruikte deep learning-bibliotheek genaamd TensorFlow. We zullen een oplossing voor het probleem bieden, de benodigde bibliotheken en functies bespreken en de code stap voor stap uitleggen.

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.

Gerelateerde berichten: