Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk mencipta model daripada data saya pada Kaggle

Bagaimana untuk mencipta model daripada data saya pada Kaggle

DDD
Lepaskan: 2025-01-26 10:12:09
asal
1019 orang telah melayarinya

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

  1. Fungsi carian imej: Mula-mula, kami mentakrifkan fungsi untuk mencari imej daripada enjin carian DuckDuckGo. Fungsi ini menerima kata kunci dan bilangan maksimum imej sebagai input dan mengembalikan senarai URL imej.
<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>
Salin selepas log masuk
  1. Cari dan muat turun imej sampel: Mari cari "foto anjing" dan "foto kucing" masing-masing dan muat turun imej sampel.
<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>
Salin selepas log masuk

How to create a model from my data on Kaggle

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>
Salin selepas log masuk

How to create a model from my data on Kaggle

  1. Muat turun kelompok dan imej pra-proses: Kami memuat turun berbilang gambar kucing dan anjing dan menyimpannya ke dalam folder 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>
Salin selepas log masuk
  1. Bersihkan imej tidak sah: Padam imej yang gagal dimuat turun atau rosak.
<code class="language-python">failed = verify_images(get_image_files(path))
failed.map(Path.unlink)</code>
Salin selepas log masuk

Langkah 2: Latihan model

  1. Buat DataLoader: Gunakan 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>
Salin selepas log masuk

How to create a model from my data on Kaggle

  1. Memperhalusi model pra-latihan: Gunakan model ResNet50 yang telah terlatih dan memperhalusinya pada set data kami.
<code class="language-python">learn = vision_learner(dls, resnet50, metrics=error_rate)
learn.fine_tune(3)</code>
Salin selepas log masuk

How to create a model from my data on Kaggle

Langkah 3: Penggunaan model

  1. Ramalan: Ramalkan contoh imej anjing yang dimuat turun sebelum ini menggunakan model terlatih.
<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>
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan