【転移学習】学習済みVGG16 による転移学習を行う方法【PyTorch】

今回は、PyTorch を使って、学習済みのモデル VGG16 を用いて転移学習をしてみました。

VGG16 は、ImageNet という大量の画像データセットで 1000カテゴリの分類を学習したモデルになります。

この VGG16 モデルに対して転移学習を行って、新たに「アリ」と「ハチ」の画像を学習させます。

Contents

データセットの準備

「アリ」と「ハチ」の画像を PyTorch の公式サイトからダウンロードします。

「data」フォルダ以下にダウンロードされました。

画像に対して前処理を行うクラスを定義します。

画像の処理前と処理後のものを比較してみます。

【処理前】

【処理後】

学習用とテスト用の画像パスをそれぞれリストに格納します。

データセット作成用のクラスを定義します。

データローダーを生成します。

ミニバッチのサイズは 32 となります。

学習済みモデルをロード

学習済みモデル VGG16 をロードします。

出力層をデフォルトの 1000クラス分類から 「ハチ」か「アリ」かの2クラス分類に変更します。

モデルの構成は以下のようになります。

重みを更新するレイヤーを設定します。

param.requires_grad = True」とすると、重みが更新され、

param.requires_grad = False」とすると、重みが更新されなくなります。

今回は、出力層以外は学習しない(重みの更新を行わない)ようにします。

更新するパラメータ名は以下のように出力されます。

VGG16 の出力層のインデックスは「6」であることが確認できます。

学習を行う関数を定義

実際に学習を行う関数を定義します。

学習・検証を行う

実際に学習・検証を実行します。

結果は以下のように、学習は約11秒で終了しました。

おそらく更新するパラメータが少ないため、早く学習が終了したのだと考えられます。

参考文献

 

関連記事

【機械学習】モンテカルロ法(Monte Carlo method)について。

モンテカルロ法(Monte Carlo method)とは、シュミレーションや数値計算を乱数を用いて

記事を読む

【Weka】ARFF 形式から CSV 形式に簡単に変換する方法。

フリーのデータマイニングツールである WEKA では、ARFF 形式と CSV 形式のデータを読み込

記事を読む

【探索】縦型・横型・反復深化法の探索手法の比較。

探索とは、チェスや将棋や囲碁などのゲームをコンピュータがプレイするときに、どの手を指すかを決定するの

記事を読む

【Weka】アソシエーション・ルール(association rule)【機械学習】

フリーの機械学習ツール Weka でアソシエーション・ルール(association rule)を使

記事を読む

【Weka】CSVファイルを読み込んで決定木を実行。

フリーの機械学習ソフト Weka を使って、CSVファイルを読み込んで決定木(Decision Tr

記事を読む

【PyTorch】GPUのメモリ不足でエラーになったときの対処方法。

PyTorch で深層学習していて、 GPUのメモリ不足でエラーが出てしまったので、対処方法のメモで

記事を読む

【PyTorch】畳込みニューラルネットワークを構築する方法【CNN】

今回は、PyTorch を使って畳込みニューラルネットワーク(CNN)を構築する方法について紹介しま

記事を読む

【機械学習】パーセプトロン(Perceptron)について。

パーセプトロンは、教師あり学習の中でも、入出力モデルベース(eager learning:働き者の学

記事を読む

【Fashion-MNIST】ファッションアイテムのデータセットを使ってみた【TensorFlow】

今回は、機械学習用に公開されているデータセットの1つである「Fashion-MNIST」について紹介

記事を読む

【機械学習】 scikit-learn で不正解データを抽出する方法【Python】

Python の scikit-learn ライブラリを使って機械学習でテストデータを識別(2クラス

記事を読む

【Cubase】イヤホンから音がでないときの対処方法。

Cubase でイヤホンから音がでなくなったときの対処方法のメモです。

【Cubase】特定のトラックを無効にする方法。

今回は、Cubaseで特定のトラックのみを無効にする方法について紹介し

【転移学習】学習済みVGG16 による転移学習を行う方法【PyTorch】

今回は、PyTorch を使って、学習済みのモデル VGG16 を用い

【PyTorch】畳込みニューラルネットワークを構築する方法【CNN】

今回は、PyTorch を使って畳込みニューラルネットワーク(CNN)

【PyTorch】ニューラルネットワークを構築する方法【NN】

今回は、PyTorch を使って、ニューラルネットワーク(NN)を構築

→もっと見る

PAGE TOP ↑