第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クラス
パラメータ
num_classes(int):カテゴリ数.デフォルトは1000です.
trainトレーニングインタフェース
パラメータ 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):早期終了トレーニングポリシーを使用する場合、検証セット精度が resume_checkpoint(str):トレーニングを再開するときに、前回のトレーニングで保存したモデルパスを指定します.Noneの場合、訓練は再開されません.デフォルトはNoneです.
evaluate評価インタフェース
パラメータ eval_Dataset(paddlex.datasets):データリーダを検証します. batch_size(int):データ・バッチのサイズを検証します.デフォルトは1です. epoch_id(int):現在モデルが存在するトレーニングホイール数を評価します. return_details(bool):詳細を返すかどうか、デフォルトFalse.
戻り値 dict: tuple(metrics,eval_details):
predict予測インタフェース
分類モデル予測インタフェース.なお、モデルは、訓練中に
パラメータ img_file(str):画像パスを予測します. transforms(paddlex.cls.transforms):データ前処理操作. topk(int):予測時の前のk個の最大値.
戻り値 list:要素はすべて辞書です.辞書のキーワードは'category_id’,’category’,’score’は,それぞれ予測カテゴリid,予測カテゴリラベル,予測スコアに対応する.
その他の分類器クラス
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)
パラメータ
early_stop_patience
epoch以内に連続的に低下または横ばいである場合、トレーニングを終了する.既定値は5です.evaluate評価インタフェース
evaluate(self, eval_dataset, batch_size=1, epoch_id=None, return_details=False)
パラメータ
戻り値
return_details
がFalseの場合、dictが返され、キーワード:'acc 1'、'acc 5'が含まれ、それぞれ最大値のaccuracy、上位5つの最大値のaccuracyを表す.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_transforms
がpredict
インタフェースに伝達されることを再定義する必要がある.パラメータ
戻り値
その他の分類器クラス
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)