Maison >développement back-end >Tutoriel Python >Comment créer un modèle à partir de mes données sur Kaggle
Ce tutoriel montre comment utiliser la bibliothèque FastAI pour entraîner un modèle de classification d'images afin de distinguer les chats des chiens. Nous procéderons étape par étape, de la préparation des données à la formation et à l'utilisation du modèle.
Étape 1 : Préparation des données
<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>
De même, on télécharge une photo d'un chat :
<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
et dog_or_not/cat
. Dans le même temps, nous redimensionnons l’image pour améliorer l’efficacité. <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>
Étape 2 : Formation du modèle
DataBlock
pour créer un DataLoader pour charger et traiter les données d'image. <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>
Étape 3 : Utilisation du modèle
<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>
Résultat de sortie :
C'est un : chien. Probabilité que ce soit un chien : 1.0000
Ce tutoriel montre comment utiliser FastAI pour créer rapidement un modèle simple de classification d'images. N'oubliez pas que la précision de votre modèle dépend de la qualité et de la quantité de vos données d'entraînement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!