私は012dとextract_patches
を2次元画像からローカルパッチ抽出に使用しています。パッチ抽出のために実装された方法を説明する理論と参考資料があります。scikit-learnのextract_patches関数の背後にある理論/アルゴリズムは何ですか?
1
A
答えて
1
私はあなたが参照する理論は、これらの方法はちょうど巧妙な配列操作です(スポイラー:numpy配列操作)参照するか分からない。
-
extract_patches(image, patch_shape=(p_h, p_w, n_colors), extraction_step=1)
を呼び出し、その結果(source code)を再形成
extract_patches
オーバーシンプル2-Dラッパーです。 第2のものは
extract_patches
であり、今回はnumpy.as_strided
を超えています。それだけで2*n
形状を作成し、ここでそのsource codeだas_strided(arr, shape=shape, strides=strides)
にジョブを委任する跨ぎます。
本当に興味深いのは
numpy.as_strided
です。それのドキュメントから:as_strided
は正確な進歩と 形状を与えられた配列へのビューを作成します。これは、 ndarrayの内部データ構造を操作し、誤って実行された場合、配列要素が 無効なメモリを指し、結果を破損したり、プログラムをクラッシュさせたりする可能性があることを意味します。隣接するメモリレイアウトへの依存を避けるために、新しい ストライドを計算するときは、元のx.strides
を常に使用することをお勧めします。 です。だから、基本的に、結果は、インデックス・ルックアップを提供し、メモリ内の同じアレイ上のラッパー(ビュー)であり、各インデックスは
x
内部特定の領域に探しています。numpy.ndarray.view
は、メモリの再割り当てなしで既存の配列内を見ることを可能にするコアのnumpy関数です。 numpyが配列操作とビューをどのように実行するかについて詳しく調べるには、numpy internalsを開始するのがよいでしょう。
関連する問題
- 1. このプログラムの背後にある論理は何ですか?
- 2. arr1 [i ++] = arr2 [j ++]の背後にある論理は何ですか?
- 3. Ruby Rails 2.3.xページネーションの背後にある理論は何ですか?
- 4. KMPパターンマッチングアルゴリズムの背景にある理論は何ですか?
- 5. Math.pow()の背後にあるJavaのアルゴリズムは何ですか
- 6. linuxのfactorコマンドの背後にあるアルゴリズムは何ですか?
- 7. カラーホイールの背後にあるアルゴリズムとは何ですか?
- 8. ST_LineMerge()の背後にあるアルゴリズムは何ですか?
- 9. フルテキストノイズワード - 論理の背後に
- 10. 乱数生成の背後にある基本的な論理は何ですか?
- 11. テンプレートメソッドの背後にある論理を理解したい
- 12. StatelessWidgetの背後にある理由は何ですか?
- 13. 'BanTransitiveDependencies failed'の背後にある理由は何ですか?
- 14. JavaのArrayListのadd()メソッドの背後にあるアルゴリズムは何ですか?
- 15. ソースコントロールの背後にある理論(および用語)
- 16. 複雑な線の背後にある論理
- 17. 量子鍵:これの背後にある論理?
- 18. カラーホイールの背後にある数学は何ですか?
- 19. CSSフィルターの背後にある数学は何ですか?
- 20. jquery関数呼び出しを別の関数にラップする背後にある概念は何ですか?
- 21. 関数ヘッダの背後にある `const`は何を意味しますか?
- 22. これがどのように機能しているかの背景にある論理は何ですか?
- 23. この無限ループの背後にある理由は何ですか?
- 24. "パーティーモデル"の背後にある原理とそのメリットは何ですか?
- 25. 次のReduxパラダイムの背後にある理由は何ですか?
- 26. モジュラ関数の背後にあるロジック
- 27. サービスの背後にあるDAOを隠す理由は何ですか?
- 28. PHPの関数に対して論理エラーを返すベストプラクティスは何ですか
- 29. プリムのアルゴリズム:グラフの理論
- 30. このjavascript論理関数の私の考えの欠陥は何ですか?