Heim >Backend-Entwicklung >Python-Tutorial >So erstellen Sie ein Modell aus meinen Daten zu Kaggle

So erstellen Sie ein Modell aus meinen Daten zu Kaggle

DDD
DDDOriginal
2025-01-26 10:12:091082Durchsuche

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

  1. Bildsuchfunktion: Zuerst definieren wir eine Funktion zum Suchen von Bildern aus der DuckDuckGo-Suchmaschine. Diese Funktion akzeptiert Schlüsselwörter und die maximale Anzahl von Bildern als Eingabe und gibt eine Liste von Bild-URLs zurück.
<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>
  1. Beispielbilder suchen und herunterladen: Lassen Sie uns nach „Hundefotos“ bzw. „Katzenfotos“ suchen und ein Beispielbild herunterladen.
<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>

How to create a model from my data on Kaggle

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>

How to create a model from my data on Kaggle

  1. Batch-Download und Vorverarbeitung von Bildern: Wir laden mehrere Bilder von Katzen und Hunden herunter und speichern sie jeweils in den Ordnern 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>
  1. Ungültige Bilder bereinigen: Löschen Sie Bilder, die nicht heruntergeladen werden konnten oder beschädigt sind.
<code class="language-python">failed = verify_images(get_image_files(path))
failed.map(Path.unlink)</code>

Schritt 2: Modelschulung

  1. DataLoader erstellen: Verwenden Sie 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>

How to create a model from my data on Kaggle

  1. Feinabstimmung des vorab trainierten Modells: Verwenden Sie ein vorab trainiertes ResNet50-Modell und optimieren Sie es anhand unseres Datensatzes.
<code class="language-python">learn = vision_learner(dls, resnet50, metrics=error_rate)
learn.fine_tune(3)</code>

How to create a model from my data on Kaggle

Schritt 3: Modelleinsatz

  1. Vorhersage: Sagen Sie das zuvor heruntergeladene Beispiel-Hundebild mithilfe des trainierten Modells voraus.
<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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn