Riješeno: kako učitati unaprijed obučeni model u pytorch

kako učitati unaprijed obučeni model U svijetu strojnog učenja i umjetne inteligencije uobičajeno je raditi s **unaprijed obučenim modelima** kako bi se postigli brži i točniji rezultati. Ovi modeli već su obučeni na velikim skupovima podataka i u biti su spremni za upotrebu. Učitavanje prethodno obučenog modela može uštedjeti znatnu količinu vremena i resursa u usporedbi s pokretanjem od nule. U ovom ćemo članku istražiti kako učitati unaprijed obučeni model pomoću Pythona, posebno se fokusirajući na naširoko korištenu biblioteku dubokog učenja pod nazivom TensorFlow. Pružit ćemo rješenje problema, razgovarati o potrebnim bibliotekama i funkcijama i proći kroz objašnjenje koda korak po korak.

Učitavanje prethodno obučenog modela

Prvi korak u radu s unaprijed obučenim modelom je nabaviti sam model. Dostupno je nekoliko popularnih unaprijed obučenih modela, kao što su VGG, ResNet i Inception, koji se često koriste za zadatke poput klasifikacije slika i otkrivanja objekata. U ovom primjeru koristit ćemo model VGG16, koji je prethodno obučen na skupu podataka ImageNet.

Za učitavanje prethodno obučenog modela VGG16 moramo koristiti biblioteku TensorFlow i njezin modul Keras. Ako nemate instaliran TensorFlow, to možete učiniti pomoću sljedeće naredbe:

"`
pip instaliraj tensorflow
"`

Nakon što je TensorFlow instaliran, možemo nastaviti s učitavanjem VGG16 modela. Ovdje je objašnjenje koda korak po korak:

from tensorflow.keras.applications import VGG16

# Load the pretrained VGG16 model with the 'imagenet' weights
model = VGG16(weights="imagenet")

U gornjem kodu prvo uvozimo klasu VGG16 iz modula `tensorflow.keras.applications`. Zatim stvaramo instancu modela VGG16 prosljeđivanjem argumenta `weights=”imagenet”`, koji upućuje model da učitava težine koje su unaprijed uvježbane na skupu podataka ImageNet.

Korištenje prethodno obučenog modela

Sada kada smo učitali unaprijed obučeni VGG16 model, možemo ga koristiti za razne zadatke kao što je klasifikacija slika. Da bismo izvršili klasifikaciju slike, moramo prethodno obraditi ulaznu sliku kako bi bila kompatibilna s VGG16 modelom. To uključuje promjenu veličine slike, normaliziranje vrijednosti piksela i proširenje njezinih dimenzija.

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)

U gornjem kodu koristimo modul `image` iz `tensorflow.keras.preprocessing` za učitavanje i pretprocesiranje ulazne slike. Veličina slike je promijenjena na `(224, 224)` prema zahtjevima VGG16 modela. Zatim pretvaramo sliku u NumPy polje i proširujemo njezine dimenzije kako bi odgovarala očekivanom ulaznom obliku. Konačno, koristimo funkciju `preprocess_input` iz modula `tensorflow.keras.applications.vgg16` za normalizaciju vrijednosti piksela.

S prethodno obrađenom i spremnom ulaznom slikom, sada možemo koristiti unaprijed obučeni VGG16 model za predviđanje:

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)

U gornjem primjeru koristimo metodu `model.predict` za generiranje predviđanja za ulaznu sliku. Rezultirajuća predviđanja zatim se dekodiraju pomoću funkcije `decode_predictions` iz modula `tensorflow.keras.applications.vgg16` kako bi se otkrile 3 najbolje predviđene klase iz skupa podataka ImageNet.

Zaključno, učitavanje i korištenje unaprijed obučenih modela u Pythonu olakšano je s bibliotekom TensorFlow. Ovaj pristup može značajno smanjiti vrijeme i resurse potrebne za postizanje točnih rezultata, što ga čini nevjerojatno vrijednim i za početnike i za iskusne praktičare strojnog učenja.

Povezani postovi:

Ostavite komentar