画像分類プロジェクト
基本的なCNNモデルを構築します
「画像分類プロジェクト」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン4/5です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全5レッスンが含まれています。
画像分類プロジェクト
画像分類プロジェクト
このプロジェクトでは、画像をカテゴリに分類するシンプルなCNNを構築します。画像分類とは、入力画像のカテゴリまたはラベルを予測する処理です。

分類用データセット
分類用データセット
飛行機、車、鳥、猫など10種類のカテゴリに分類された60,000枚の画像で構成されるCIFAR-10データセットを使用します。各画像は32×32ピクセルで、3つの色チャネル(RGB)を持ちます。
データセットの読み込み
データセットの読み込み
TensorFlowを使ってCIFAR-10データセットを読み込みます:
import tensorflow as tf
from tensorflow.keras.datasets import cifar10
# Load dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
# Normalize the pixel values to [0, 1]
x_train = x_train / 255.0
x_test = x_test / 255.0
print("Training data shape:", x_train.shape)CNNモデルの構築
CNNモデルの構築
畳み込み層、プーリング層、全結合層を含むCNNアーキテクチャを定義します:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# Define the CNN model
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
MaxPooling2D((2, 2)),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])モデルのコンパイル
モデルのコンパイル
次の内容でモデルをコンパイルします:
- 損失関数: 多クラス分類用のカテゴリカル交差エントロピー。
- オプティマイザー: 効率的な学習のためのAdamオプティマイザー。
- 評価指標: 性能を評価するための正解率。
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])モデルの学習
モデルの学習
トレーニングデータを使い、10エポックにわたってモデルを学習させます。学習中、モデルは画像をカテゴリに分類する方法を学びます。
# Train the model
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))モデルの評価
モデルの評価
学習後、テストデータを使ってモデルの正解率を確認します:
# Evaluate the model
loss, accuracy = model.evaluate(x_test, y_test)
print(f"Test Accuracy: {accuracy * 100:.2f}%")予測の実行
予測の実行
学習済みモデルを使って、新しい画像に対する予測を行えます:
# Predict the category of a test image
import numpy as np
sample_image = x_test[0]
sample_label = y_test[0]
prediction = np.argmax(model.predict(sample_image[np.newaxis, ...]))
print(f"Predicted Label: {prediction}, Actual Label: {sample_label[0]}")画像分類における課題
画像分類における課題
一般的な課題には、次のようなものがあります:
- 過学習: トレーニングデータでは高い性能を示しますが、新しいデータでは性能が低くなります。
- クラス不均衡: データセット内でカテゴリの出現数に偏りがあります。
- 計算コスト: 深層ネットワークの学習には、相当なリソースが必要です。
まとめと次のステップ
まとめと次のステップ
このプロジェクトでは、次のことを行いました:
- CIFAR-10データセットを使って、画像分類用のCNNを構築し、学習させました。
- データセットの読み込み、前処理、評価の方法を学びました。
- 画像分類タスクにおける課題について説明しました。
次は、トレーニング画像のバリエーションを生成してモデルの性能を向上させる、データ拡張の手法について学びます。

よくある質問
「画像分類プロジェクト」レッスンは無料ですか?
はい。「画像分類プロジェクト」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全5レッスンが含まれています。
「画像分類プロジェクト」で何を学びますか?
基本的なCNNモデルを構築します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/5です。
「画像分類プロジェクト」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。