I en verden av maskinlæring og kunstig intelligens er det vanlig å jobbe med **foropplærte modeller** for å oppnå raskere og mer nøyaktige resultater. Disse modellene har allerede blitt trent på store datasett og er i hovedsak klare til bruk. Å laste en forhåndstrent modell kan spare mye tid og ressurser sammenlignet med å starte fra bunnen av. I denne artikkelen vil vi utforske hvordan du laster en forhåndstrent modell ved hjelp av Python, spesielt med fokus på det mye brukte dyplæringsbiblioteket kalt TensorFlow. Vi vil gi en løsning på problemet, diskutere nødvendige biblioteker og funksjoner, og gå gjennom en trinn-for-trinn forklaring av koden.
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.