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

kako učitati unaprijed obučeni model U svijetu mašinskog učenja i umjetne inteligencije uobičajeno je raditi s **unaprijed obučenim modelima** kako bi se postigli brži i precizniji rezultati. Ovi modeli su već obučeni za velike skupove podataka i u suštini su spremni za upotrebu. Učitavanje prethodno obučenog modela može uštedjeti znatnu količinu vremena i resursa u poređenju s počinjanjem od nule. U ovom članku ćemo istražiti kako učitati unaprijed obučeni model koristeći Python, posebno se fokusirajući na široko korištenu biblioteku dubokog učenja pod nazivom TensorFlow. Mi ćemo pružiti rješenje problema, razgovarati o potrebnim bibliotekama i funkcijama i proći kroz objašnjenje koda korak po korak.

Učitavanje unaprijed obučenog modela

Prvi korak u radu sa unapred obučenim modelom je nabavka samog modela. 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 detekcije objekata. U ovom primjeru koristit ćemo model VGG16, koji je prethodno obučen na ImageNet skupu podataka.

Za učitavanje prethodno obučenog modela VGG16, trebamo koristiti TensorFlow biblioteku i njen Keras modul. Ako nemate instaliran TensorFlow, to možete učiniti sljedećom naredbom:

"`
pip install tensorflow
"`

Kada se TensorFlow instalira, možemo nastaviti sa učitavanjem VGG16 modela. Evo korak po korak objašnjenja koda:

from tensorflow.keras.applications import VGG16

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

U kodu iznad, prvo uvozimo klasu VGG16 iz modula `tensorflow.keras.applications`. Zatim kreiramo instancu VGG16 modela prosljeđivanjem argumenta `weights=”imagenet”`, koji daje instrukcije modelu da učita težine koje su prethodno obučene na ImageNet skupu podataka.

Korištenje unaprijed obučenog modela

Sada kada smo učitali prethodno obučeni VGG16 model, možemo ga koristiti za različite zadatke kao što je klasifikacija slika. Da bismo izvršili klasifikaciju slike, moramo prethodno obraditi ulaznu sliku kako bismo je učinili kompatibilnom sa VGG16 modelom. Ovo uključuje promjenu veličine slike, normalizaciju vrijednosti piksela i proširenje njenih 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 kodu iznad, koristimo modul `image` iz `tensorflow.keras.preprocessing` za učitavanje i prethodnu obradu ulazne slike. Veličina slike je promijenjena na `(224, 224)` prema zahtjevu modela VGG16. Zatim pretvaramo sliku u NumPy niz i širimo njene dimenzije kako bi odgovarale očekivanom ulaznom obliku. Konačno, koristimo funkciju `preprocess_input` iz modula `tensorflow.keras.applications.vgg16` za normalizaciju vrijednosti piksela.

Sa ulaznom slikom koja je prethodno obrađena i spremna, sada možemo koristiti unaprijed obučeni VGG16 model da napravimo 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 se zatim dekodiraju pomoću funkcije `decode_predictions` iz modula `tensorflow.keras.applications.vgg16` kako bi se otkrile 3 najbolje predviđene klase iz ImageNet skupa podataka.

U zaključku, učitavanje i korištenje unaprijed obučenih modela u Pythonu je olakšano uz TensorFlow biblioteku. Ovaj pristup može značajno smanjiti vrijeme i resurse potrebne za postizanje tačnih rezultata, što ga čini nevjerovatno vrijednim i za početnike i za iskusne praktičare mašinskog učenja.

Slični postovi:

Ostavite komentar