【Python/Keras】CNNとCIFAR-10で画像認識・分類

Pythonの機械学習モジュール「Keras」でCNN(畳み込みニューラルネットワーク)を実装し、CIFAR-10を学習して画像認識・分類する方法をソースコード付きでまとめました。

【CNN】CIFAR-10で画像認識・分類

畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)とは、ディープラーニングの手法の1つで、主に画像認識に利用されています。
ニューラルネットワークの重み計算に「畳み込み演算(Convolution)」が用いられていることから、CNNと呼ばれています。
畳み込みニューラルネットワークの原理については以下ページで解説しています。

404 NOT FOUND | Python入門速報

動画解説

本ページの内容は以下動画でも解説しています。

CIFAR-10

CIFAR-10とは、画像分類用のデータセットで、詳細は以下表の通りです。

説明
画像サイズ 32×32[px]
形式 カラー画像(24bitカラー)
クラスラベル airplane(飛行機), automobile(自動車), bird(鳥), cat(猫), deer(鹿), dog(犬), frog(蛙), horse(馬), ship(船), truck(トラック)の10種類
データ量 訓練用データ5万枚、テスト用データ1万枚
関連ページ CIFAR-10公式サイト

今回は、Python3 + KerasでCNN(畳み込みニューラルネットワーク)を構築し、データセット「CIFAR-10」を学習させてみました。

CIFAR-10のダウンロード方法は以下記事で解説しています。

【Python/Keras】CIFAR-10のデータセットをダウンロード
Pythonの機械学習モジュール「Keras」でIFAR-10のデータセットをダウンロードする方法をソースコード付きでまとめました。

【サンプルコード1】データセットを使って分類器を作成

サンプルプログラムのソースコードです。


【サンプルコード2】作成した分類器で手書き画像の分類

保存した学習データを使って、画像を分類してみます。


試しに、データセットにない画像(いらすとや様の痛車)を与えてみました。

車と認識できました。

【TensorFlow版Keras入門】ディープラーニングを簡単に学ぶ方法
Pythonモジュール「TensorFlow/Keras」で深層学習(ディープラーニング)を行う方法について入門者向けに使い方を解説します。

コメント