第3部PaddleXモデルセット_3.1画像分類

14614 ワード

文書ディレクトリ
  • ResNet 50クラス
  • trainトレーニングインタフェース
  • evaluate評価インタフェース
  • predict予測インタフェース
  • 他の分類器クラス
  • ResNet18
  • ResNet34
  • ResNet50
  • ResNet50_vd
  • ResNet50_vd_ssld
  • ResNet101
  • ResNet101_vd
  • ResNet101_vd_ssld
  • DarkNet53
  • MobileNetV1
  • MobileNetV2
  • MobileNetV3_small
  • MobileNetV3_small_ssld
  • MobileNetV3_large
  • MobileNetV3_large_ssld
  • Xception65
  • Xception71
  • ShuffleNetV2
  • DenseNet121
  • DenseNet161
  • DenseNet201
  • HRNet_W18

  • ResNet 50クラス
    paddlex.cls.ResNet50(num_classes=1000)
    
    ResNet50分類器を構築し、その訓練、評価、予測を実現する.
    パラメータ
    num_classes(int):カテゴリ数.デフォルトは1000です.
    trainトレーニングインタフェース
    train(self, num_epochs, train_dataset, train_batch_size=64, eval_dataset=None, save_interval_epochs=1, log_interval_steps=2, save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=0.025, warmup_steps=0, warmup_start_lr=0.0, lr_decay_epochs=[30, 60, 90], lr_decay_gamma=0.1, use_vdl=False, sensitivities_file=None, eval_metric_loss=0.05, early_stop=False, early_stop_patience=5, resume_checkpoint=None)
    

    パラメータ
  • num_epochs(int):反復輪数を訓練する.
  • train_Dataset(paddlex.datasets):データリーダを訓練します.
  • train_batch_size(int):トレーニングデータbatchサイズ.同時に検証データbatchサイズとして使用します.既定値は64です.
  • eval_Dataset(paddlex.datasets):データリーダを検証します.
  • save_interval_epochs(int):モデル保存間隔(単位:反復輪数).デフォルトは1です.
  • log_interval_Step(int):トレーニングログ出力間隔(単位:反復ステップ数).既定は2です.
  • save_dir(str):モデル保存パス.
  • pretrain_Weights(str):パスとして指定した場合、パスの下の事前トレーニングモデルをロードします.文字列’IMAGENET’であれば、ImageNetピクチャデータに予め訓練されたモデルウェイトが自動的にダウンロードされる.Noneの場合、プリトレーニングモデルは使用されません.デフォルトは「IMAGENET」です.
  • optimizer(paddle.fluid.optimizer):オプティマイザ.このパラメータがNoneの場合、デフォルトのオプティマイザ:fluidを使用します.layers.piecewise_decay減衰戦略、fluid.optimizer.Momentumの最適化方法.
  • learning_rate(float):デフォルトのオプティマイザの初期学習率.既定値は0.025です.
  • warmup_Step(int):デフォルトのオプティマイザのwarmupステップ数で、学習率は設定されたステップ数内でwarmup_からstart_lr線形成長から設定learning_rate、デフォルトは0です.
  • warmup_start_lr(float):デフォルトオプティマイザのwarmup開始学習率、デフォルト0.0.
  • lr_decay_epochs(list):デフォルトのオプティマイザの学習率減衰ホイール数.既定は[30,60,90]です.
  • lr_decay_gamma(float):デフォルトのオプティマイザの学習率減衰率.既定は0.1です.
  • use_vdl(bool):VisualDLを使用して可視化するかどうか.デフォルトはFalseです.
  • sensitivities_file(str):パスとして指定すると、パスの下の感度情報をロードして切り取ります.文字列’DEFAULT’であれば、ImageNetピクチャデータで得られた感度情報を自動的にダウンロードして切り取る.Noneの場合、裁断は行われません.デフォルトはNoneです.
  • eval_metric_loss(float):許容可能な精度損失.既定値は0.05です.
  • early_stop(bool):早期終了訓練ポリシーを使用するかどうか.デフォルトはFalseです.
  • early_stop_patience(int):早期終了トレーニングポリシーを使用する場合、検証セット精度がearly_stop_patience epoch以内に連続的に低下または横ばいである場合、トレーニングを終了する.既定値は5です.
  • resume_checkpoint(str):トレーニングを再開するときに、前回のトレーニングで保存したモデルパスを指定します.Noneの場合、訓練は再開されません.デフォルトはNoneです.

  • evaluate評価インタフェース
    evaluate(self, eval_dataset, batch_size=1, epoch_id=None, return_details=False)
    

    パラメータ
  • eval_Dataset(paddlex.datasets):データリーダを検証します.
  • batch_size(int):データ・バッチのサイズを検証します.デフォルトは1です.
  • epoch_id(int):現在モデルが存在するトレーニングホイール数を評価します.
  • return_details(bool):詳細を返すかどうか、デフォルトFalse.

  • 戻り値
  • dict:return_detailsがFalseの場合、dictが返され、キーワード:'acc 1'、'acc 5'が含まれ、それぞれ最大値のaccuracy、上位5つの最大値のaccuracyを表す.
  • tuple(metrics,eval_details):return_detailsがTrueの場合、キーワードを含むdictを返します:'true_labels’、’pred_scores’は、それぞれ実カテゴリid、各カテゴリの予測スコアを表す.

  • predict予測インタフェース
    predict(self, img_file, transforms=None, topk=5)
    

    分類モデル予測インタフェース.なお、モデルは、訓練中にeval_datasetが定義されている場合にのみ、保存時に予測時の画像処理フローをResNet50.test_transformsおよびResNet50.eval_transformsに保存する.訓練時にeval_datasetが定義されていない場合、予測predictインタフェースが呼び出されると、ユーザはtest_transformspredictインタフェースに伝達されることを再定義する必要がある.
    パラメータ
  • img_file(str):画像パスを予測します.
  • transforms(paddlex.cls.transforms):データ前処理操作.
  • topk(int):予測時の前のk個の最大値.

  • 戻り値
  • list:要素はすべて辞書です.辞書のキーワードは'category_id’,’category’,’score’は,それぞれ予測カテゴリid,予測カテゴリラベル,予測スコアに対応する.

  • その他の分類器クラスPaddleXは計22種類の分類器を提供し、すべての分類器はResNet50と同じ訓練trainを提供し、evaluateと予測predictインタフェースを評価し、各モデル効果はモデルライブラリを参照することができる.
    ResNet18
    paddlex.cls.ResNet18(num_classes=1000)
    

    ResNet34
    paddlex.cls.ResNet34(num_classes=1000)
    

    ResNet50
    paddlex.cls.ResNet50(num_classes=1000)
    

    ResNet50_vd
    paddlex.cls.ResNet50_vd(num_classes=1000)
    

    ResNet50_vd_ssld
    paddlex.cls.ResNet50_vd_ssld(num_classes=1000)
    

    ResNet101
    paddlex.cls.ResNet101(num_classes=1000)
    

    ResNet101_vd
    paddlex.cls.ResNet101_vdnum_classes=1000)
    

    ResNet101_vd_ssld
    paddlex.cls.ResNet101_vd_ssld(num_classes=1000)
    

    DarkNet53
    paddlex.cls.DarkNet53(num_classes=1000)
    

    MobileNetV1
    paddlex.cls.MobileNetV1(num_classes=1000)
    

    MobileNetV2
    paddlex.cls.MobileNetV2(num_classes=1000)
    

    MobileNetV3_small
    paddlex.cls.MobileNetV3_small(num_classes=1000)
    

    MobileNetV3_small_ssld
    paddlex.cls.MobileNetV3_small_ssld(num_classes=1000)
    

    MobileNetV3_large
    paddlex.cls.MobileNetV3_large(num_classes=1000)
    

    MobileNetV3_large_ssld
    paddlex.cls.MobileNetV3_large_ssld(num_classes=1000)
    

    Xception65
    paddlex.cls.Xception65(num_classes=1000)
    

    Xception71
    paddlex.cls.Xception71(num_classes=1000)
    

    ShuffleNetV2
    paddlex.cls.ShuffleNetV2(num_classes=1000)
    

    DenseNet121
    paddlex.cls.DenseNet121(num_classes=1000)
    

    DenseNet161
    paddlex.cls.DenseNet161(num_classes=1000)
    

    DenseNet201
    paddlex.cls.DenseNet201(num_classes=1000)
    

    HRNet_W18
    paddlex.cls.HRNet_W18(num_classes=1000)