【深さ学習−画像分類】imageAIカスタムモデルトレーニング


何気なく巨牛の人工知能のチュートリアルを見つけて、思わず共有してあげました.教程は基礎がゼロで、分かりやすくて、しかもとても面白くてユーモアがあって、小説を読むようです!すごいと思って、みんなに分かち合いました.ここをクリックするとチュートリアルにジャンプできます.人工知能チュートリアル
10分で画像認識ライブラリimageAIを知ることができます.前の記事を見てください.ここをクリック
ImageAIは4種類の異なるアルゴリズムとモデルを提供してカスタム予測モデル訓練を実行し、以下の簡単ないくつかのステップでカスタム予測モデル訓練を実現することができる.カスタム予測モデルトレーニングのための4つのアルゴリズムは、SqueezeNet、ResNet、InceptionV 3、およびDenseNetを含む.いずれかのアルゴリズムをimageaiにロードできます.Prediction.Custom.CustomImagePredictionクラスでは、任意のオブジェクト/人のイメージセットで独自のモデルを訓練できます.トレーニングプロセスは、画像データセットと多くのモデルのオブジェクトタイプをマッピングするJSONファイルを生成します.その後、生成したJSON文を使用して、高精度のカスタム画像予測を行うことができます.
imageAIライブラリをインストールし、清華鏡像ソースを採用し、pythonバージョン:3.6.9
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  imageAI


インストールtensorflow_gpu、清華鏡像ソース、pythonバージョン:3.6.9を採用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  tensorflow_gpu==1.14

カスタム予測モデルのトレーニングを行うには、トレーニングに使用する画像を準備する必要があります.画像を次のように指定する必要があります.
データセットフォルダを作成し、petsなどの名前を付けます.データセットファイルにtrainという名前のサブフォルダを作成します.データセットファイルにtestという名前のサブフォルダを作成します.trainフォルダには、トレーニングするオブジェクトごとにフォルダを作成し、dog、cat、squirrel、snakeなどの名前を付けます.testフォルダには、訓練するオブジェクトごとにフォルダを作成し、dog、cat、squirrel、snakeなどの名前を付けて、各オブジェクトの画像をtrainフォルダの下に対応する名前のサブフォルダに置きます.これらの画像はモデルを訓練するための画像です.精度の高いモデルを訓練するために、各オブジェクトに約500枚以上の画像を収集することをお勧めします.各オブジェクトがテストに使用する画像をtestフォルダの下に対応する名前のサブフォルダに置き、精度の高いモデルを訓練するために、各オブジェクトがテストに使用する画像を100~200枚提案します.モデルのトレーニングに使用すると、これらの画像からトレーニング対象のオブジェクトが認識されます.以上の手順に従って、画像データセットフォルダの構成を以下に示します.
pets >
train >> dog >>> dog_train_images
      >> cat >>> cat_train_images
      >> squirrel >>> squirrel_train_images
      >> snake >> snake_train_images
test  >> dog >>> dog_test_images
      >> cat >>> cat_test_images
      >> squirrel >>> squirrel_test_images
      >> snake >>> snake_test_images

トレーニングコード:resnet.train.py
from imageai.Prediction.Custom import ModelTraining
model_trainer = ModelTraining()
model_trainer.setModelTypeAsResNet()
model_trainer.setDataDirectory("./pets/")
model_trainer.trainModel(num_objects=4, num_experiments=100, enhance_data=True, batch_size=32, show_network_summary=True)

間違いない!5行のコードだけで、サポートされている4つの深さ学習アルゴリズムを使用して、カスタムモデルをトレーニングできます.次に、上記のコードがどのように動作しているかを見てみましょう.
from imageai.Prediction.Custom import ModelTraining

model_trainer = ModelTraining()
model_trainer.setModelTypeAsResNet()
model_trainer.setDataDirectory("pets")

上のコードでは、1行目はImageAIのModelTrainingクラスをインポートし、2行目はModelTrainingクラスの新しいインスタンスを作成し、3行目はモデルタイプをResNetに設定し、4行目はトレーニングしたいデータセットのパスを設定します.
model_trainer.trainModel(num_objects=4, num_experiments=100, enhance_data=True, batch_size=32, show_network_summary=True)

上記のコードでは、モデルトレーニングを開始しました.パラメータは次のとおりです.
num_objects:このパラメータは、画像データセットオブジェクトの数num_を指定するために使用されます.experiments:このパラメータは、epochs enhanceと呼ばれる画像トレーニングの回数を指定するために使用されます.data(オプション):このパラメータは、より良いパフォーマンスを得るためにトレーニング画像のコピーを生成するかどうかを指定するために使用されます.batch_size:このパラメータはロット数を指定するために使用されます.メモリ制限のため、すべてのロット・トレーニング・セットが完了するまで、バッチ・トレーニングが必要です.show_network_summary:このパラメータは、コンソールにトレーニングを表示するプロセスを指定します.