node 用の numpy ライクなパッケージ [終了].
質問
Pythonの開発に携わっている間、ndarrayをループして何かをするコードを、配列全体を一度に処理するnumpy関数で書き直すと、どれだけ物事が速くなるかにいつも驚かされてきました。最近、私はますますnodeに乗り換えつつあり、同じようなものを探しています。今のところ、私はいくつかのものを見つけましたが、どれも有望には見えません。
- scikit-node(スキキットノード は、pythonでscikit-learnを実行し、nodeとのインタフェースを提供します。私は試していませんが、私が望むような最先端のスピードが得られるとは思っていません。
- javascriptのマトリックスライブラリには、かなり古いものと新しいものがあります ( sylvester , グラマトリックス , ...). 4x4より大きな行列(3Dレンダリングで最も有用です)でうまく動作するかどうかわからないことに加えて、これらはネイティブのjavascriptであるようです(そしていくつかは、これらはわかりませんが、webGLアクセラレーションを使用しています)。ブラウザ上では素晴らしいですが、ノード上ではそうではありません。
私の知る限り、npmsはC++で書くことができます。なぜnode用のnumpyライクなライブラリがないのか不思議です。そのようなパワーを必要とするコミュニティから、node に対する関心がまだ十分でないだけなのでしょうか。ES6の機能(リスト内包)により、javascriptコンパイラがネイティブJSコードをC++の速度に自動的にベクトル化できるようになるという希望があるのでしょうか?私はおそらく何か他のものを見逃しているのでしょうか?
編集 close-voteに対応しています。注意:私は xyz を行うための最良のパッケージは何かを尋ねているのではありません。私はただ、node上でこれを行うパッケージがない技術的な理由があるのか、社会的な理由があるのか、あるいは全く理由がなく、私が見逃しているパッケージがあるのか、疑問に思っているだけなのです。あまりに多くの意見的な批判を避けるためかもしれませんが、私は知りたいのです。私は100×100の行列を10000個ほど持っています。それらを一緒に追加するための最良の(※修正、合理的な高速)方法は何ですか?
編集2 さらに調べてみると、私が間違ったことをググっていたことが判明しました。node.js scientific computing"でググると、いくつかの非常に興味深いノートへのリンクがあります。
- https://cs.stackexchange.com/questions/1693/a-faster-leaner-javascript-for-scientific-computing-what-features-should-i-kee
- http://www.quora.com/Can-Node-js-handle-numerical-computation-the-same-way-that-languages-like-R-or-Julia-can
- Javascript と科学的処理?
基本的に今理解している限りでは、今のところ誰も気にしていないようです。また、js TypedArraysにはいくつかの大きな欠落(64bit intなど)があるため、エンジン自体をハックするのではなく、NPMを使用して良いサポートを追加することは難しいかもしれません---これは目的を失うことになります。そしてまた、私はこの最後のステートメントをさらに調査していません。
どのように解決するのですか?
ここでは、Googleの TensorFlow.js (以前は https://deeplearnjs.org ) は、まさにそれを実現し、WebGL を使用して GPU 上で深いニューラルネットワークを訓練する機能を内蔵しています。また TensorFlow モデルを移植することもできます。 .
これがディープラーニングのためだけのものだと騙されないでください。これは、GPUアクセラレーションを内蔵した本格的な数値計算プラットフォームです。NumPy(やTensorflow Eager、PyTorchなど)のように、Tensorflowのように定義してから実行するモデルではなく、eager "execute as you go"というモデルに従っています。そのため、NumPyを使ったことがある人であれば、自然に使えると感じるはずです。
とても参考になるGithubのレポはこちらです。
https://github.com/tensorflow/tfjs-core (旧リンクの https://github.com/PAIR-code/deeplearnjs がそこにリダイレクトされるようになりました)
関連
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] npm installの-saveオプションは何ですか?
-
[解決済み] インストールされているnpmパッケージのバージョンを検索する
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] JavaScript 配列のビッグ・オー