Příprava vstupního obrázku
Původní model ResNet50 byl trénovaný na obrázcích o velikosti 224 × 224 pixelů a zahrnoval řadu předzpracovávacích kroků – například odečtení průměrné hodnoty pixelu trénovací sady od všech trénovacích obrázků. Obrázky, na kterých chceš provádět predikce, musíš předzpracovat stejným způsobem.
Při predikci na jediném obrázku je potřeba, aby odpovídal vstupnímu tvaru modelu, který v tomto případě vypadá takto:
(batch-size, width, height, channels). Funkce np.expand_dims s parametrem axis = 0 přidá dimenzi batch-size, která říká, že modelu bude předán jediný obrázek. Hodnota této dimenze je 1, protože predikujeme pouze pro jeden obrázek.
Nyní projdeš těmito předzpracovávacími kroky a připravíš obrázek psa jménem Ivy tak, aby ho bylo možné klasifikovat pomocí ResNet50.
Toto cvičení je součástí kurzu
Úvod do hlubokého učení s Keras
Pokyny k cvičení
- Importuj
imageztensorflow.keras.preprocessingapreprocess_inputztensorflow.keras.applications.resnet50. - Načti obrázek se správnou hodnotou
target_sizepro tvůj model. - Převeď ho na pole pomocí
image.img_to_array(). - Předzpracuj
img_expandedstejným způsobem, jakým byly zpracovány původní trénovací obrázky ResNet50, pomocí funkcepreprocess_input().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Import image and preprocess_input
from tensorflow.keras.____ import ____
from tensorflow.keras.____.____ import ____
# Load the image with the right target size for your model
img = image.load_img(img_path, target_size=(____, ____))
# Turn it into an array
img_array = image.____(____)
# Expand the dimensions of the image, this is so that it fits the expected model input format
img_expanded = np.expand_dims(img_array, axis = 0)
# Pre-process the img in the same way original images were
img_ready = ____(____)