برنامه نویسی

نحوه ایجاد یک مدل از داده های من در Kaggle

1، تابعی از جستجوی تصاویر را تعریف کنید

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')
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2، عکس سگ را جستجو کنید و URL ها را از جستجو دریافت کنید

urls = search_images('dog photos', max_images=1)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

3- یک تصویر را دانلود کنید و به آن نگاه کنید

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)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات تصویر

4- همین کار را برای عکس گربه انجام دهید

download_url(search_images('cat photos', max_images=1)[0], 'cat.jpg', show_progress=False)
Image.open('cat.jpg').to_thumb(256,256)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات تصویر

5، چند نمونه از هر یک از عکس های سگ و گربه را بردارید و هر گروه از عکس ها را در یک پوشه متفاوت ذخیره کنید.

searches = 'dog', 'cat'
path = Path('dog_or_not')

for o in searches:
    # make sub dirs in dog_or_not
    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)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

6، عکس هایی را که ممکن است به درستی دانلود نشوند و باعث شکست آموزش مدل ما شود، حذف کنید

failed = verify_images(get_image_files(path))
failed.map(Path.unlink)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

1، دیتالودرها را با استفاده از DataBlock ایجاد کنید

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)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات تصویر

2، از مدل از پیش آموزش دیده استفاده کنید و آن را در مجموعه داده ما تنظیم کنید

learn = vision_learner(dls, resnet50, metrics=error_rate)
learn.fine_tune(3)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات تصویر

1، از عکس سگی که در ابتدا دانلود کردیم استفاده کنید تا ببینید مدل ما در مورد چه فکری می کند

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}")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این یک: سگ است.
احتمال سگ بودن: 10000

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا