問題タブ [dot-product]

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 投票する
1 に答える
219 参照

python - Python、2 つのベクトル間の DotProduct 問題

私は 2 つのベクトル間の内積を実行しようとしていますが、問題はそれらが対称でなければならないことです。

次のような 2 つのベクトルがある場合:

この場合、数値の 2 つのベクトルがあります

しかし、正しい内積を行うには、同じ長さの2つのベクトルが必要であり、同じ単語の値は同じ位置にある必要があり、使用されていない位置をゼロで埋めます。

例えば:

この方法で最初のベクトルを変換する方法はありますか? 私はpythonでそれをしなければなりませんありがとう!

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

python - コサイン類似度pythonの問題

こんにちは、Python の情報検索プログラムでクエリと返すドキュメントの間のコサイン類似度を計算しようとしています。

コサインの類似性のために、私はこの実装を使用します:

このWebサイトでこの解決策を見つけましたが、いくつか問題があります。各ドキュメントの重みとベクトルを tf*idf します。これは、ドキュメント ベクトルとクエリ ベクトルの例です。

わかりましたので、問題は、コサイン類似度を実行すると、結果が 1 よりも大きくなることです。これはどのように可能ですか? コサインは 1 より大きくなりませんか? 私の推論は正しいですか?この場合、コサイン類似度を計算するのは正しいですか? 助けてください、ありがとう

0 投票する
2 に答える
4240 参照

python - Pythonのタプルのドット積

内積は次の方法で見つけることができることを理解しています。

しかし、私はタプルの内積を見つけようとしています:

numpy を使用せずにこれを行う方法。

のようなステートメントを使用することはできませんsum(p*q for p,q in zip(vector3, vector4))か?

同じことをしようとすると、次のようなエラーが発生したためです。

これを解決するには?

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

c - CUDA C によるダミーの内積

共有メモリを使用して、cuda c で内積に関する簡単なチュートリアルを実行しようとしています。コードは非常に単純で、基本的に 2 つの配列の要素間の積を計算し、各ブロックの結果を合計します。

このコードは、Cuda by Example book で提示されているものと同じで、唯一の違いはベクトル a、b、および c の定義にあります (定義方法は問題にならないはずです。 )。

問題は次のとおりです。プログラムを実行しようとすると、クラッシュします。端末は、問題は次のとおりです。Failed to copy vector c from device to host (error code the launch timed out and was terminated)!

ベクトルcを適切な方法で割り当てたと思うので、それは奇妙です...誰かが私が間違っていることを知っていますか? 何か問題があるのはグローバル関数ですか、それともメインですか?

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

python - for ループのない部分配列の内積

私たちが持っているとき:

そして、それらの部分配列を掛けて取得したい

ジェネレーターを使用しているim:

では、配列 C を取得するために for ループを使用せずに、A、B の内部で配列乗算を行うにはどうすればよいでしょうか。

使おうと思ったnp.tensordotけど取れない

ノート:

これは、私が持っていた元のデータのいくつかのテストcosの基本的な例です

4*3*37 配列 A(500 000,3,3) B(3,500 000)

to do、および for loop sems は、pythonic の方法ではありません xD

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

c - アセンブリ MMX ドット積セグメンテーション違反

アセンブリ言語を使用して、2 つの小さな配列の単純な内積計算を実行しようとしています。これが私のコードです:

makefile からコンパイル:

結果:

gdb を使用して原因を分析すると、次のようになります。

結果をレジスタに戻すことができない理由がわかりません。どんな提案でも大歓迎です。

何度もありがとうございます。

ヴィンセント

0 投票する
2 に答える
1259 参照

performance - Scipy Python での効率的な並列スパース行列ドット積

私は非常に大きな (1.5M x 16M) 疎 csr scipy 行列 A を持っています。計算する必要があるのは、行の各ペアの類似性です。類似性を次のように定義しました。

すべてのペアごとの行の類似性を計算するには、これ (またはコサイン類似性) を使用します。

ここで、pairs[i, j] は、そのようなすべての i と j に対する行 i と行 j の類似度です。これは、行のペアワイズ コサイン類似度に非常に似ています。したがって、ペアワイズコサイン類似度を計算する効率的な並列アルゴリズムがあれば、それは私にとってもうまくいくでしょう。

問題: この内積は 1 つの CPU しか使用しないため、非常に低速です (サーバー上で 64 個の CPU にアクセスできます)。

また、A と AT をファイルにエクスポートし、乗算を並行して行う他の外部プログラムを実行して、結果を Python プログラムに戻すこともできます。

このドット積を行うより効率的な方法はありますか? または並列でペアごとの類似性を計算しますか?

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

algorithm - Python3 で二重和内の内積を計算する効率的な方法

私は、python3で可能な限り効率的に計算する方法を検討しています。フォームの二重和内のドット積:

ここで、r_np は数千のトリプルの配列で、xa は定数トリプルです。N=1000トリプルの長さのタイミングは約2.4sです。numpy を使用して同じ:

実際には約 のランタイムで遅くなります4.0s。これは大きなベクトル化の利点がないためだと思います。短い 3 ドット 3 だけが np.dot であり、ループ内の N^2 を開始することによって消費されます。ただし、map と mul を使用してプレーンな python3 を使用することで、最初の例よりもわずかに高速化することができます。

ランタイムで2.0s

if 条件を使用して casej=kを計算しないようにします。

したがって、ドット積も0になるか、合計を2つに分割して同じ結果を達成します

どちらもさらに遅くなりました。したがって、全体が O(N^2) でスケーリングされます。並べ替えなどの方法を使用して、ループを取り除き、O(N logN) でスケーリングできるかどうか疑問に思います。N~6000問題は、数千の合計を計算する必要があるため、トリプルのセットに対して 1 桁の秒ランタイムが必要なことです。それ以外の場合は、scipy の weave 、numba、pyrex、または python を試すか、完全に C パスをたどる必要があります…</p>

助けてくれてありがとう!

編集:

データ サンプルは次のようになります。