[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
ホームページ > バックエンド開発 > Python チュートリアル > Kaggleに関する私のデータからモデルを作成する方法

Kaggleに関する私のデータからモデルを作成する方法

DDD
リリース: 2025-01-26 10:12:09
オリジナル
991 人が閲覧しました

このチュートリアルでは、FastAI ライブラリを使用して、猫と犬を区別する画像分類モデルをトレーニングする方法を説明します。 データの準備からモデルのトレーニングと使用まで、段階的に説明します。

ステップ 1: データの準備

  1. 画像検索関数: まず、DuckDuckGo 検索エンジンから画像を検索する関数を定義します。この関数は、キーワードと画像の最大数を入力として受け取り、画像 URL のリストを返します。
<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. サンプル画像の検索とダウンロード: 「犬の写真」と「猫の写真」をそれぞれ検索して、サンプル画像をダウンロードしてみましょう。
<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

同様に、猫の写真をダウンロードします:

<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. 画像のバッチダウンロードと前処理: 猫と犬の複数の写真をダウンロードし、それぞれ dog_or_not/dog フォルダーと dog_or_not/cat フォルダーに保存します。 同時に画像のサイズを変更して効率を向上させます。
<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. 無効な画像を削除: ダウンロードに失敗した画像、または破損した画像を削除します。
<code class="language-python">failed = verify_images(get_image_files(path))
failed.map(Path.unlink)</code>
ログイン後にコピー

ステップ 2: モデルのトレーニング

  1. DataLoader の作成: DataBlock を使用して、画像データをロードして処理するための DataLoader を作成します。
<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. 事前トレーニングされたモデルの微調整: 事前トレーニングされた ResNet50 モデルを使用し、データセット上で微調整します。
<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

ステップ 3: モデルの使用

  1. 予測: トレーニング済みモデルを使用して、以前にダウンロードした犬のサンプル画像を予測します。
<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>
ログイン後にコピー

出力結果:

これは犬です。 犬である確率: 1.0000

このチュートリアルでは、FastAI を使用して簡単な画像分類モデルを迅速に構築する方法を説明します。 モデルの精度はトレーニング データの質と量に依存することに注意してください。

以上がKaggleに関する私のデータからモデルを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート