Lasting av en forhåndstrent modell
Det første trinnet i arbeidet med en forhåndstrent modell er å få selve modellen. Det er flere populære forhåndstrente modeller tilgjengelig, for eksempel VGG, ResNet og Inception, som ofte brukes til oppgaver som bildeklassifisering og objektgjenkjenning. I dette eksemplet vil vi bruke VGG16-modellen, som har blitt forhåndstrent på ImageNet-datasettet.
For å laste den forhåndstrente VGG16-modellen, må vi bruke TensorFlow-biblioteket og dets Keras-modul. Hvis du ikke har TensorFlow installert, kan du gjøre det med følgende kommando:
“
pip installer tensorflow
“
Når TensorFlow er installert, kan vi fortsette med å laste inn VGG16-modellen. Her er den trinnvise forklaringen av koden:
from tensorflow.keras.applications import VGG16 # Load the pretrained VGG16 model with the 'imagenet' weights model = VGG16(weights="imagenet")
I koden ovenfor importerer vi først VGG16-klassen fra `tensorflow.keras.applications`-modulen. Deretter oppretter vi en forekomst av VGG16-modellen ved å sende argumentet `weights="imagenet"`, som instruerer modellen til å laste vekter som har blitt forhåndstrent på ImageNet-datasettet.
Ved å bruke den forhåndstrente modellen
Nå som vi har lastet inn den ferdigtrente VGG16-modellen, kan vi bruke den til ulike oppgaver som bildeklassifisering. For å utføre bildeklassifisering må vi forhåndsbehandle inndatabildet for å gjøre det kompatibelt med VGG16-modellen. Dette innebærer å endre størrelse på bildet, normalisere pikselverdier og utvide dimensjonene.
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)
I koden ovenfor bruker vi `image`-modulen fra `tensorflow.keras.preprocessing` for å laste og forhåndsbehandle inndatabildet. Bildet endres til «(224, 224)» i henhold til VGG16-modellens krav. Vi konverterer deretter bildet til en NumPy-matrise og utvider dimensjonene for å matche den forventede inngangsformen. Til slutt bruker vi 'preprocess_input'-funksjonen fra 'tensorflow.keras.applications.vgg16'-modulen for å normalisere pikselverdiene.
Med inngangsbildet forhåndsbehandlet og klart, kan vi nå bruke den forhåndstrente VGG16-modellen til å lage en prediksjon:
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)
I eksemplet ovenfor bruker vi `model.predict`-metoden for å generere en prediksjon for inngangsbildet. De resulterende spådommene dekodes deretter ved å bruke funksjonen 'decode_predictions' fra 'tensorflow.keras.applications.vgg16'-modulen for å avsløre de 3 beste predikerte klassene fra ImageNet-datasettet.
Avslutningsvis er det enkelt å laste og bruke forhåndstrente modeller i Python med TensorFlow-biblioteket. Denne tilnærmingen kan redusere tiden og ressursene som kreves for å oppnå nøyaktige resultater betydelig, noe som gjør den utrolig verdifull for både nybegynnere og erfarne maskinlæringsutøvere.