複数の Numpy スライスを使用した効率的なランダム画像トリミング
カラー画像を表す 4 次元 Numpy 配列が与えられた場合、目標は効率的にランダムを選択することです各画像から 16x16 を切り抜き、それぞれに固有の切り抜き位置を設定image.
for ループを使用した単純なアプローチでは、不必要なメモリ オーバーヘッドと計算が発生します。このプロセスを最適化するには、np.lib.stride_tricks.as_strided メソッドまたは scikit-image の view_as_windows 関数を利用します。
view_as_windows の使用
view_as_windows 関数は、重複するウィンドウを作成します入力配列内で、追加のメモリ割り当てなしで元のデータへのビューを効果的に作成します。 (1, 16, 16, 1) のウィンドウ形状を指定することで、2 番目と 3 番目の軸 (幅と高さ) に沿ってステップ サイズ 1 でスライディング ウィンドウを作成します。
特定のウィンドウにインデックスを付けるには、ランダムなオフセットのペア (x, y) に対して、次の手順を使用します:
このメソッドは、さまざまなオフセットで複数の画像をトリミングする効率的なアプローチを提供し、反復アプローチと比較してメモリのオーバーヘッドと計算時間を削減します。
以上がNumpy スライスを使用して複数の画像からランダムな 16x16 パッチを効率的にトリミングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。