問題タブ [vectorization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
2421 参照

matlab - 開始/終了インデックスのリストからのベクトル化された配列の作成

M一連の間隔の開始/終了インデックスを含む2列の行列があります。

すべての区間インデックスのベクトルを生成するにはどうすればよいですか?

私はループを使用して上記を行っていますが、よりエレガントなベクトル化されたソリューションがあるかどうか疑問に思っていますか?

0 投票する
4 に答える
4000 参照

gcc - double および ffast-math での自動ベクトル化

s-ffast-mathを使用してループのベクトル化を実現するために g++ を使用することが必須なのはなぜですか? 精度を落としたくないので嫌いですdouble-ffast-math

0 投票する
4 に答える
3529 参照

matlab - 行列内のさまざまな対角線の合計をベクトル化する

次の MATLAB コードをベクトル化したいと考えています。私はそれが単純でなければならないと思いますが、それでも混乱しています。

このコードは、別のスコア テーブルCから動的計画法アルゴリズムのスコア テーブルSを計算します。対角合計は、 C を生成するために使用されるデータの個々の部分のスコアを生成することです。

ご回答ありがとうございます。これが明らかな場合は申し訳ありません...

私の eye(r) は非常に小さい ( 5 <= r <= 20 ) ため、組み込みのconv2
は convnfft よりも高速であることが判明しました。convnfft.m は、メリットが現れるには r > 20 である必要があると述べています。

0 投票する
3 に答える
12156 参照

matlab - MATLAB でのベクトル化の概要 - 良いチュートリアルはありますか?

MATLAB でのベクトル化 (ループ) に関する優れたチュートリアルを探しています。

私は非常に単純なアルゴリズムを持っていますが、2 つのforループを使用しています。ベクトル化するのは簡単であるべきだとわかっているので、解決策を求めるのではなく、その方法を学びたいと思います。

しかし、私が抱えている問題を知らせるために、同様の問題を解決する方法を示す最良のチュートリアルを提案できるように、ここに私の問題の概要を示します。

だから、私は解決策を求めていません。MATLAB でのループのベクトル化の例である優れたチュートリアルを求めています。やり方を学んで独学でやりたいです。

0 投票する
3 に答える
770 参照

matlab - 多数の行列に対するすべての操作を並列化またはベクトル化しますか?

同じ数の行とさまざまな数の列 (20 x 〜 200) を持つ約 5,000 の行列があります。これらの各行列は、動的計画法のアルゴリズムで互いに比較する必要があります。

この質問では比較をすばやく実行する方法を尋ねたところ、2D 畳み込みに関する優れた回答が得られました。その方法を順番に、繰り返し適用して、

データの小さなサブセットでは高速です (たとえば、9 つの行列の場合、9*9 - 9 = 72 回の呼び出しが ~1 秒で行われ、870 回の呼び出しが ~2.5 秒で行われます)。
ただし、すべてのデータを操作するには、約 2,500 万回の呼び出しが必要です。
また、deal() を使用して、データ内の次の要素だけで構成されるセル配列を作成しようとしたので、単一のループで cellfun() を使用できました。

残念ながら、これは実際にはそれほど高速ではありません。これらのコード例は両方とも、並列化には適していないようです。変数をスライスする方法がわかりません。
compare() は完全にベクトル化されています。行列の乗算と conv2() のみを使用します (cellfun() を含むこれらの操作はすべて、MATLAB でマルチスレッド化する必要があるという印象を受けました)。

(明示的に) 並列化された解決策または問題のより良いベクトル化を見た人はいますか?

私の例は両方とも非効率的であることに注意
してください.1つ目は三角形のセル配列を計算すると2倍速くなり、2つ目はまだ自己比較を計算しています。しかし、優れた並列化による時間の節約は、16 倍 (全員のマシンに MATLAB をインストールした場合は 72 倍) です。

余談
メモリの問題もあります。いくつかの eval を使用して、H の各列を H1、H2 などの名前でファイルに追加し、H iをクリアしました。残念ながら、保存は非常に遅いです...

0 投票する
1 に答える
507 参照

matlab - Matlab でのループのベクトル化 - パフォーマンスの問題

この質問は、次の 2 つに関連しています:
MATLAB でのベクトル化の紹介 - 良いチュートリアルはありますか?
2 つの配列の要素を同時に使用するフィルター

私が読んだチュートリアルに基づいて、本当に多くの時間がかかる手順をベクトル化しようとしていました。

私はこれを書き直しました:

これに:


A行列はどこですか512x512
wはウィンドウ サイズの半分です。通常、5
sigmaは範囲 [0 1] のパラメータです (通常は 0.1、0.2、または 0.3 のいずれか)。
したがって、I行列には​​ 512x512x121 = 31719424 要素が含まれます。

しかし、このバージョンは最初のものと同じくらい遅いようですが、さらに多くのメモリを使用し、メモリの問題を引き起こすこともあります.

私は何か間違ったことをしたと思います。おそらく、ベクトル化に関する何らかの論理ミスです。実際、私は驚くことではありません。この方法は非常に大きな行列を作成し、おそらく計算はそれに比例して長くなります。

nlfilter を使用して記述しようとしましたが ( Jonas によって提供された 2 番目のソリューションと同様)、 Matlab 6.5 (R13)を使用しているため、難しいようです(使用できる洗練された関数ハンドルはありません)。

繰り返しになりますが、私はすぐに解決できる解決策を求めているのではなく、妥当な時間内にこれを解決するのに役立ついくつかのアイデアを求めています. たぶん、あなたは私が間違ったことを指摘してくれるでしょう。

編集: Mikhail が示唆したように、プロファイリングの結果 は
次のとおりです
H= exp(...)
im2col

0 投票する
1 に答える
626 参照

javascript - JS 実装は現在、配列などの高速なベクトル化された操作をサポートしていますか (またはロードマップでサポートしていますか?)

JavaScript で少し行列/ベクトル演算を行いたいのですが、ブラウザーや他の JS 実装が実際にベクトル化された操作をサポートしているかどうか疑問に思っていました。たとえば、2 つの配列のエントリをすばやく合計する (または合計するなど)。 . それが現在、ベクトル化された操作にコンパイルされることを意味しない場合でも、少なくともいくつかの言語サポートは、実装されたときに役立ちます-正しい方向へのステップとしてそれをサポートする関数または構文の存在を利用します. . (当然のことながら、「ベクター化 JavaScript」検索はほとんどすべてグラフィックスと SVG に関するものです。)

0 投票する
1 に答える
13937 参照

r - R strsplitをベクトル化するには?

を使用する関数を作成する場合strsplit、ベクトル入力は期待どおりに動作しないため、使用sapplyする必要があります。これは、strsplit生成されるリスト出力によるものです。プロセスをベクトル化する方法はありますか?つまり、関数は入力の各要素に対してリスト内の正しい要素を生成しますか?

たとえば、文字ベクトル内の単語の長さをカウントするには、次のようにします。

理想的には、 length(strsplit(words,"")[[.]])whereのようなもの.は、入力ベクトルの関連部分であると解釈されます。

0 投票する
4 に答える
4762 参照

php - ラスター画像からベクター画像へのサーバー側変換

ユーザーが(さまざまな形式と条件で)アップロードした画像を、.epsなどのベクター画像形式に変換したいと思います。私は主にPHPで作業しています。

どのようなオプションがありますか?

0 投票する
3 に答える
1120 参照

r - 同じ行に示されている列からの戻り値

実行に 1 時間以上かかる単純なループで立ち往生しており、それを高速化するために助けが必要です。

基本的に、31 列と 400,000 行の行列があります。最初の 30 列には値があり、31 番目の列には列番号があります。行ごとに、31 番目の列で示される列の値を取得する必要があります。

行の例: [26,354,72,5987..,461,3] (これは、列 3 の値が検索されることを意味します (72))

遅すぎるループは次のようになります。

私はこれがうまくいくと思います:

...しかし、「エラー: サイズ 2.8 Mb のベクトルを割り当てることができません」という結果になります。

これは非常に単純な質問なのではないかと心配しているので、apply、lapply、reshape などを理解しようと何時間も費やしましたが、どういうわけか R のベクトル化の概念を把握できません。

マトリックスには実際にはさらに多くの列があり、それらはパラメーターにも渡されます。そのため、マトリックスを再構築したり分割したりしたくありません。

あなたのサポートは高く評価されています!

クリス