テスト時間の増加(TTA)

試験時間の増強

データ拡張は、トレーニングセットを拡張するためにトレーニングデータセットからのサンプルの修正されたコピーを使用する一般的学習モデル中に使用される方法です。
データ拡張は、典型的には、(等ズーム、フリップ、シフト、など)いくつかの画像処理技術は、トレーニングデータセットのイメージ・コピーを作成するために行われた画像データを用いて行われます。
通常、トレーニングデータセットのサイズが深い学習モデルの性能とは拡大し続けているため、トレーニングデータセットの人工延長は、より多くの熟練したモデルを生成することができます。また、トレーニングデータセットまたは修正画像モデルの拡張バージョンは、その位置、および光と他の学習特徴抽出方法を変更しないのに役立ちます。
(TTAと称する)試験時間の増大は、テスト・データ・セットのデータがアプリケーションを拡大しています。
特に、モデルが各画像の予測を行い、その後、これらの予測に戻りように、各画像強調の複数のコピーを作成するために、テストセットにおけるコレクションに関する。
選択的増強を正しく指定した画像を分類するための最良の機会を持っているモデルを可能にするためであり、画像のモデルは、10未満または20のような小さな通常のコピーの数を予測する必要があります。
典型的には、唯一のそのような変位、作物又はフリップ画像として、時間拡張の簡単なテストを実行します。
我々はまた、画像のレベルを増加させるためにテストセットをめくる、原画像を、最終テストを反転画像を取得し、平均ソフト最大カテゴリスコア。

使い方

1. pytorch_toolbelt

from pytorch_toolbelt.inference import tta

# Truly functional TTA for image classification using horizontal flips:
logits = tta.fliplr_image2label(model, input)

# Truly functional TTA for image segmentation using D4 augmentation:
logits = tta.d4_image2mask(model, input)

# TTA using wrapper module:
tta_model = tta.TTAWrapper(model, tta.fivecrop_image2label, crop_size=512)
logits = tta_model(input)

2. DIY

import torch

# 水平翻转
def flip_horizontal_tensor(batch):
    columns = batch.data.size()[-1]
    return batch.index_select(-1, torch.LongTensor(list(reversed(range(columns)))).cuda())

ここに画像を挿入説明

#   垂直翻转
def flip_vertical_tensor(batch):
    rows = batch.data.size()[-2]
    return batch.index_select(-2, torch.LongTensor(list(reversed(range(rows)))).cuda())

ここに画像を挿入説明

公開された33元の記事 ウォンの賞賛3 ビュー5539

おすすめ

転載: blog.csdn.net/weixin_42990464/article/details/104558980