问题标签 [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.
scala - 如何为 nd4j 和 deeplearning4j 设置 scala sbt 项目
我想使用 scala 在我自己的 sbt 项目中运行deeplearning4j 示例中的 LSTM 代码。我的设置是 Ubuntu 14.04、sbt 0.13、Oracle Java 8、nd4j 版本 0.5.0、scala 2.11.8。我的方法可以在我的 git repo中找到。随意克隆它。在运行时我收到以下警告和错误。我怎样才能解决这个问题?
nd4j - dl4j - 无法获取非二维矩阵的行数
我目前正在使用 nd4j 和 dl4j 来实现一些深度学习算法。但是,我首先无法让 datavec + dl4j 工作。
这是我的图像转换器:
这是主要课程:
在图像文件夹中,我有一些灰度 28x28 图像分别位于子文件夹a
中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 Notebook (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
我得到以下运行时异常:
在我看来,我缺少一个 nd4j 后端,这是我的 Gradel 文件依赖项:
尝试使用 nd4j-native 和其他一些,但没有帮助。
不知道还能做什么。
linux - Can't build ParagraphVectors in Linux
I'm using the Doc2Vec algorithm with Deeplearning4j and it works fine when I run it on my Windows 10 PC, however when I try to run it on a Linux box, i get the following error:
I've tried this on a couple of Linux machines, both of which were running Xubuntu and had sudo permissions
Here is the code for creating my ParagraphVectors: InputStream is = new ByteArrayInputStream(baos.toByteArray());
And here is my pom.xml (versions are all 0.7.1, but I had been using 0.4-rc3.9 and got the same error) :
java - 矢量化计算的 Java 最佳实践
我正在研究在 Java 中计算昂贵的向量运算的方法,例如大矩阵之间的点积或乘法。这里有一些关于这个主题的好帖子,比如this和this。
似乎没有可靠的方法让 JIT 编译代码以使用 CPU 向量指令(SSE2、AVX、MMX ...)。此外,高性能线性代数库(ND4J、jblas、...)实际上确实对核心例程的 BLAS/LAPACK 库进行了 JNI 调用。而且我理解 BLAS/LAPACK 包是本地线性代数计算的事实上的标准选择。
另一方面,其他人(JAMA,...)无需native
调用即可在纯 Java 中实现算法。
我的问题是:
- 这里有哪些最佳实践?
native
打电话给 BLAS/LAPACK 实际上是一个推荐的选择吗?还有其他值得考虑的库吗?- 与性能提升相比,JNI 调用的开销是否可以忽略不计?有没有人知道阈值在哪里(例如,输入应该多小才能使 JNI 调用比纯 Java 例程更昂贵?)
- 便携性的权衡有多大?
我希望这个问题对那些开发自己的计算例程的人以及那些只想在不同实现之间做出明智选择的人都有帮助。
见解表示赞赏!
java - 使用 DeepLearning4J 的 INDArray 创建性能不佳
作为一段更大的代码的一部分,我正在使用这个
创建我的输入数组以从我已经训练过的神经网络中获取输出。rgbValues 是大约 10,000 个浮点数的一维数组。这一行代码运行大约需要 3 秒,我不知道为什么。对此的任何帮助表示赞赏。
numpy - 在 ND4J 中使用广播
我最近从 numpy 切换到 ND4J,但很难理解 ND4J 中的广播是如何工作的。
假设我有两个 ndarray,形状为 [3,2,4,5] 的 a 和形状为 [2,4,5] 的 b。我想按元素将它们加起来并将 b 广播到 each a[i] for i = 0 to 2
。在 numpy 中,它可以简单地通过 来完成a + b
,而在 ND4J 中则a.add(b)
抛出异常。我试过a.add(b.broadcast(3))
了,但还是没有运气。
在 ND4J 中这样做的正确方法是什么?
java - deeplearning4j 为 CNN 训练创建 NDArray
我正在尝试为 CNN 实现一个通道,这个通道是将一个句子分成 x 个部分。然后这些部分中的每一个都获得一个情感分数,这些部分被输入到 CNN 中。但是,我不明白如何将这些部分分数转换为 CNN 的 INDArray。
我当前的代码:
我刚刚尝试了不同的特征形状和索引,但我真的不知道我在做什么,所以任何帮助将不胜感激!
我将代码基于 Deeplearning4js CnnSentenceDataSetIterator,它将句子转换为词嵌入。
scala - Nd4j:使用多线程比单线程慢
这是我的处理器:MacOs Sierra 上的 2.3 GHz Intel Core i7(即 4 个超线程内核)
这是我的程序:
当我使用默认线程运行上述程序时(对于 nd4j 和此处理器,这将是 4),大约需要 28 秒。
当我在 1 个核心 ( export OMP_NUM_THREADS=1
) 上运行它时,需要 18 秒。
知道这是为什么吗?谢谢你。