1

私は、低解像度ではなく高解像度画像で訓練することに何らかの利点があるのだろうかと思っていました。私は大きな画像で訓練するのに時間がかかり、寸法は32の倍数でなければならないことを理解しています。私の現在の画像セットは1440x1920です。 480x640にリサイズする方が良いでしょうか、それとも良いでしょうか?TensorFlowで訓練するとき、画像のサイズは重要ですか?

答えて

2

あなたの画像は2の累乗である必要はありません。物事をスピードアップする(GPU割り当てなど)場合がありますが、それは重要ではありません。

小さな画像は、より大きなバッチで訓練できるように、より迅速に収束し、場合によってはさらに収束します(その他の要因はすべて一定です)(たとえば、1回のパスで100-1000画像高解像度画像を持つ1台のマシンで行う)。

サイズを変更するかどうかについては、画像内のすべてのピクセルがタスクにとって重要であるかどうかを確認する必要があります。多くの場合、これはそうではありません。おそらく、128x128と言うようにバスの写真のサイズを変更し、まだそれがバスであることを認識することができます。

小さい画像を使用すると、オーバーフィットするデータが少ないため、ネットワークの一般化に役立ちます。

画像分類ネットワークでしばしば使用される技術は、(a)奇数サイズの画像を一定のサイズに変換し、(b)より多くのデータを合成し、((c) c)ネットワークを一般化するように促す。

1

これは、アプリケーションによって大きく異なります。経験則として、私は自分自身に質問しました。つまり、サイズ変更されたイメージで自分自身でタスクを完了できますか?もしそうなら、私はあなたがあなた自身のために仕事をより困難にする前に、最低の解像度に縮小します。もしそうでなければ...あなたは画像1440 * 1920を使って非常に忍耐強くなければならないでしょう。私は、より多くの多様なアーキテクチャーやハイパーパラメーターセットを小さな画像で実験するほうが、フル解像度の画像で

どのようなサイズを選んでも、自分の考えているイメージサイズに合わせてネットワークを設計する必要があります。畳み込みレイヤーを使用している場合は、大きな画像には大きなストライド、フィルターサイズ、レイヤーが必要です。パラメータの数は各コンボルーションごとに同じになりますが、機能の数は増加します(使用している場合はバッチ正規化パラメータとともに増加します)。

関連する問題