Tutorial ini menunjukkan cara menggunakan perpustakaan FastAI untuk melatih model klasifikasi imej untuk membezakan antara kucing dan anjing. Kami akan pergi langkah demi langkah, daripada penyediaan data kepada latihan model dan penggunaan.
Langkah 1: Penyediaan data
<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>
Begitu juga, kami memuat turun gambar kucing:
<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
dan dog_or_not/cat
masing-masing. Pada masa yang sama, kami mengubah saiz imej untuk meningkatkan kecekapan. <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>
Langkah 2: Latihan model
DataBlock
untuk mencipta DataLoader untuk memuatkan dan memproses data imej. <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>
Langkah 3: Penggunaan model
<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>
Hasil keluaran:
Ini ialah: anjing. Kebarangkalian ia seekor anjing: 1.0000
Tutorial ini menunjukkan cara menggunakan FastAI untuk membina model klasifikasi imej ringkas dengan cepat. Ingat, ketepatan model anda bergantung pada kualiti dan kuantiti data latihan anda.
Atas ialah kandungan terperinci Bagaimana untuk mencipta model daripada data saya pada Kaggle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!