Dieses Tutorial zeigt, wie Sie mit der FastAI-Bibliothek ein Bildklassifizierungsmodell trainieren, um zwischen Katzen und Hunden zu unterscheiden. Wir gehen Schritt für Schritt vor, von der Datenvorbereitung bis zum Modelltraining und der Nutzung.
Schritt 1: Datenaufbereitung
<code class="language-python">import os iskaggle = os.environ.get('KAGGLE_KERNEL_RUN_TYPE', '') if iskaggle: !pip install -Uqq fastai 'duckduckgo_search>=6.2' from duckduckgo_search import DDGS from fastcore.all import * import time, json def search_images(keywords, max_images=200): return L(DDGS().images(keywords, max_results=max_images)).itemgot('image')</code>
<code class="language-python">urls = search_images('dog photos', max_images=1) from fastdownload import download_url dest = 'dog.jpg' download_url(urls[0], dest, show_progress=False) from fastai.vision.all import * im = Image.open(dest) im.to_thumb(256,256)</code>
In ähnlicher Weise laden wir ein Bild einer Katze herunter:
<code class="language-python">download_url(search_images('cat photos', max_images=1)[0], 'cat.jpg', show_progress=False) Image.open('cat.jpg').to_thumb(256,256)</code>
dog_or_not/dog
und dog_or_not/cat
. Gleichzeitig ändern wir die Bildgröße, um die Effizienz zu verbessern. <code class="language-python">searches = 'dog', 'cat' path = Path('dog_or_not') for o in searches: dest = (path/o) dest.mkdir(exist_ok=True, parents=True) download_images(dest, urls=search_images(f'{o} photo')) time.sleep(5) resize_images(path/o, max_size=400, dest=path/o)</code>
<code class="language-python">failed = verify_images(get_image_files(path)) failed.map(Path.unlink)</code>
Schritt 2: Modelschulung
DataBlock
, um einen DataLoader zum Laden und Verarbeiten von Bilddaten zu erstellen. <code class="language-python">dls = DataBlock( blocks=(ImageBlock, CategoryBlock), get_items=get_image_files, splitter=RandomSplitter(valid_pct=0.2, seed=42), get_y=parent_label, item_tfms=[Resize(192, method='squish')] ).dataloaders(path, bs=32) dls.show_batch(max_n=6)</code>
<code class="language-python">learn = vision_learner(dls, resnet50, metrics=error_rate) learn.fine_tune(3)</code>
Schritt 3: Modelleinsatz
<code class="language-python">is_dog,_,probs = learn.predict(PILImage.create('dog.jpg')) print(f'This is a: {is_dog}.') print(f"Probability it's a dog: {probs[1]:.4f}")</code>
Ausgabeergebnis:
Das ist ein: Hund. Wahrscheinlichkeit, dass es ein Hund ist: 1,0000
Dieses Tutorial zeigt, wie Sie mit FastAI schnell ein einfaches Bildklassifizierungsmodell erstellen. Denken Sie daran, dass die Genauigkeit Ihres Modells von der Qualität und Quantität Ihrer Trainingsdaten abhängt.
Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein Modell aus meinen Daten zu Kaggle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!