問題タブ [nd4j]
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.
nd4j - dl4j - 非 2D 行列の行数を取得できない
現在、nd4j と dl4j を使用してディープ ラーニング アルゴリズムを実装しています。しかし、そもそもdatavec+dl4jが動作しません。
これが私の画像コンバーターです:
メインクラスは次のとおりです。
a
画像フォルダーには、それぞれサブフォルダーにグレースケールの 28x28 画像がいくつかありますb
。
ただしException in thread "main" java.lang.IllegalStateException: Unable to get number of of rows for a non 2d matrix
投げられる。
でデータを調べると、次のdataSetIterator.next().toString()
ようになります。
さらに、の出力dataSetIterator.next().get(0).toString()
は
例の mnisterIterator は次のmnisterIterator.next().toString()
ようになります。
dataSetIterator
そこから、返されたデータに間違った形式のデータが含まれていたと推測されます。
誰もそれを修正する方法を知っていますか?
java - DeepLearning4J: jupyter での実行時の org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException
jupyter ノートブック (IBM DSExperience) で DL4J の例を実行しようとしているので、MLP 分類子の例を Java から Scala に移植し、依存関係を追加しましたが、現在バックエンドの選択に苦労しています。次のJAR %AddJar http://central.maven.org/maven2/org/nd4j/nd4j-x86/0.4-rc3.8/nd4j-x86-0.4-rc3.8.jarを追加するだけで十分だと思いましたorg.nd4j.linalg.factory.Nd4jBackend のクラスローダーがそれを取得できるようにしますが、残念ながら次のようになります。
名前: java.lang.NoClassDefFoundError メッセージ: org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException
完全なコードをGISTに入れました
java - Androidのnd4jバックエンドRuntimeException
次の RuntimeException が発生します。
私にはnd4jバックエンドが欠けているようです。ここに私のgradelファイルの依存関係があります:
nd4j-native と他の多くのものを使用しようとしましたが、役に立ちませんでした。
これ以上何をすべきかわかりません。
linux - Linux で ParagraphVectors をビルドできない
Deeplearning4j で Doc2Vec アルゴリズムを使用しており、Windows 10 PC で実行すると問題なく動作しますが、Linux ボックスで実行しようとすると、次のエラーが発生します。
どちらもXubuntuを実行していて、sudo権限を持っていた2台のLinuxマシンでこれを試しました
ParagraphVectors を作成するためのコードは次のとおりです。 InputStream is = new ByteArrayInputStream(baos.toByteArray());
そして、これが私のpom.xmlです(バージョンはすべて0.7.1ですが、0.4-rc3.9を使用していて同じエラーが発生しました):
java - ベクトル化された計算に関する Java のベスト プラクティス
Java で高価なベクトル演算を計算する方法を研究しています。たとえば、内積や大きな行列間の乗算などです。このトピックについては、 thisやthisなどの良いスレッドがいくつかあります。
JIT コンパイル コードで CPU ベクトル命令 (SSE2、AVX、MMX...) を使用する信頼できる方法はないようです。さらに、高性能線形代数ライブラリ (ND4J、jblas など) は、コア ルーチンの BLAS/LAPACK ライブラリへの JNI 呼び出しを実際に行います。また、BLAS/LAPACK パッケージがネイティブ線形代数計算のデファクトスタンダードの選択肢であることも理解しています。
一方、他のもの (JAMA など) は、native
呼び出しなしで純粋な Java でアルゴリズムを実装します。
私の質問は次のとおりです。
- ここでのベストプラクティスは何ですか?
native
BLAS/LAPACK の呼び出しは実際に推奨される選択ですか? 検討する価値のある他のライブラリはありますか?- パフォーマンスの向上に比べて、JNI 呼び出しのオーバーヘッドは無視できますか? しきい値がどこにあるかについて経験のある人はいますか (たとえば、純粋な Java ルーチンよりも高価な JNI 呼び出しを行うには、入力をどれくらい小さくする必要がありますか?)
- 移植性のトレードオフはどの程度ですか?
この質問が、独自の計算ルーチンを開発する人にも、さまざまな実装から知識に基づいた選択をしたいだけの人にも役立つことを願っています。
洞察は大歓迎です!