【転移学習】学習済み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秒で終了しました。

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

参考文献

 

関連記事

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

今回は、PyTorch を使って、ニューラルネットワーク(NN)を構築したときのメモです。 フ

記事を読む

【機械学習・手法比較】決定木とナイーブベイズを比較してみた。

同じデータを使って、教師有り機械学習手法の 決定木(Decision Tree)とナイーブベイズ(N

記事を読む

【深層学習】 TensorFlow と Keras をインストールする【Python】

今回は、Google Colaboratory 上で、深層学習(DeepLearning)フレームワ

記事を読む

機械学習の手法のまとめ。

機械学習は、「与えられた入出力事例をモデル化する行為」のことで、ディープラーニングなどで注目を集めて

記事を読む

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

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

記事を読む

【機械学習】決定木(decision tree)について。

教師あり学習の一つである決定木(desicion tree)について勉強したことを書いていきます。

記事を読む

【機械学習】 scikit-learn で精度・再現率・F値を算出する方法【Python】

今回は、2クラス分類で Python の scikit-learn を使った評価指標である、精度(P

記事を読む

【Weka】フリーの機械学習ソフトをインストールする方法。

Weka は、GUIで使えるフリーの機械学習ソフトです。 https://ja.wikiped

記事を読む

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

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

記事を読む

【画像認識】 Google画像検索結果を取得する方法 【google image download】

今回は、深層学習(DeepLearning)で画像認識をするための画像データの収集を、Google画

記事を読む

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

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

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

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

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

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

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

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

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

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

→もっと見る

PAGE TOP ↑