Pynote

Python、機械学習、画像処理について

Deep Learning - ResNet の仕組みについて

概要

画像認識のコンテスト ILSVRC 2015 にて、top5 error rate で3.57%を記録し、優勝した CNN ネットワークモデルである。
下記、2論文に基づいて紹介する。

  • 概要
  • ResNet が考案された背景
  • 劣化問題
  • residual network
  • ResNet
    • ネットワーク構成
    • shortcut connection
    • residual block
  • 実装
  • 参考
続きを読む

TensorFlow / Keras - ImageDataGenerator を使った画像分類モデルの学習方法

概要

ImageDataGenerator を使用して画像分類の学習を行うチュートリアル。

Jupyter Notebook

本記事のコード全体は以下。

keras-image-data-generator-usage.ipynb

  • 概要
  • 関連記事
  • Jupyter Notebook
  • flower_photos
  • モデルを作成する。
  • モデルをコンパイルする。
  • ImageDataGenerator を作成する。
  • 学習する。
  • 損失関数の値、精度の履歴を可視化する。
  • 評価する。
  • 推論する。
続きを読む

Keras - Keras の ImageDataGenerator を使って学習画像を増やす

概要

CNN の学習を行う場合にオーグメンテーション (augmentation) を行い、学習データのバリエーションを増やすことで精度向上ができる場合がある。
Keras の preprocessing.image モジュールに含まれる ImageDataGenerator を使用すると、リアルタイムにオーグメンテーションを行いながら、学習が行える。

キーワード

  • ImageDataGenerator
  • オーグメンテーション (augmentation)

関連記事

具体的な使い方は以下を参照。

pynote.hatenablog.com

  • 概要
  • キーワード
  • 関連記事
  • ImageDataGenerator
  • 基本的な使い方
  • オーグメンテーションの種類
    • 回転する。
    • 上下反転する。
    • 左右反転する。
    • 上下平行移動する。
    • 左右平行移動する。
    • せん断 (shear transformation) する。
    • 拡大縮小する。
    • 各画素値に値を足す。
    • 明度を変更する。
    • 外挿方法
    • 定数倍する。
    • コールバック関数による前処理を行う。
    • データセット全体で各チャンネルごとの画素値の平均を0にする。
    • データセット全体で各チャンネルごとの画素値の分散を1にする。
    • 白色化を行う。
    • サンプルごとの画素値の平均を0にする。
    • サンプルごとの画素値の分散を1にする。
  • 生成した画像をフォルダに保存する。
  • 参考
続きを読む