【问题标题】:Matrix Library Update矩阵库更新
【发布时间】:2011-05-04 11:23:36
【问题描述】:

我正在做一个神经网络项目(你知道很多线性代数计算),所以我已经使用了 Jblas,这是一个很棒的库,但是在我安装了 Ubuntu 最新版本 11.04 之后,我在使用它时遇到了一些问题, (错误无法复制 temp bla bla)如果我做一些工作我会解决的。

但它本身的错误是一个警告我真的应该使用本机库吗?知道我已经因为这种错误而逃脱了 C++(Java 是可移植的,实现更容易等)

所以我回到了 Apache Commons,它非常好(功能上:很多包,良好的设计)但性能是最差的!

这让我在 Apache 的性能与当今处理器的性能之间进退两难,我们是否应该无视 Apache 等库的缓慢性能并指望新处理器中的技术改进和多线程?

你认为我应该怎么做我已经使用 JBLAS 一半了,

  1. 我应该使用 Apache 吗?
  2. 继续使用 JBLA(修复错误)并继续前进
  3. 使用您选择的另一个新的 2011 年有前途的 JAVA 线性代数库?

编辑:错误是: “org.jblas 错误无法加载复制的链接文件:java.lang.UnsatisfiedLinkError:/tmp/jblas2930149998010945438libjblas_arch_flavor.so:libgfortran.so.3:无法打开共享对象文件:没有这样的文件或目录。”

在我通过Facebook Page 咨询了 JBLAS 的作者之后,他们告诉我我需要安装 libgfortran3,并且问题已解决“以防万一有人遇到同样的问题”

【问题讨论】:

  • 我不确定您遇到了什么样的错误,或者在哪里。我发现 Ubuntu 11 不会对 java 产生负面影响。
  • 它不会影响 JBLAS,我会在 5 分钟后自行返回错误

标签: java matrix linear-algebra


【解决方案1】:

我之前已经成功使用过JAMA。它由 Mathworks(Matlab 的创建者)和 NIST 创建。这是一个包含基本线性代数方法的不错的软件包,但它可能无法满足您的速度要求。

【讨论】:

    【解决方案2】:

    我认为像 Java 这样的解释型语言不会为您提供本机代码的原始性能。这就是为什么 FORTRAN/C/C++ 在科学计算中仍然非常活跃和良好的原因。据我所知,像 LAPACK 这样的包仍然是黄金标准。

    我不确定Colt 是否让我成为骗子。我没有个人经验,但如果我还在这个领域工作,我肯定会看看。

    如果这确实是您最大的问题,我会继续使用 JBLAS。您可以修复该错误。继续。

    【讨论】:

    • Java 不是一种纯粹的解释型语言。 JVM 有一个 JIT(即时)编译器,可以将字节码编译为非常高效的本机代码。 Java 并不慢,因为它没有提前编译为本机代码。
    • 我意识到 Java 并不是纯粹的解释型,但这并不能改变 Java 尚未深入广泛用于科学计算的事实。
    • 如果你知道它不是一个有效的参数,那你为什么要使用它?注意:根据我自己的经验,我知道 JVM 并不是处理原始数字的最佳平台。但据我所知,这是因为 JVM 更喜欢兼容性而不是速度。例如,java.lang.Math 中的三角函数是在软件中实现的,而不是使用硬件的可用函数,因为这样可以更好地保证结果在任何操作系统上都是相同的。
    • 我的论点仍然有效。你听起来好像同意我的观点。你为什么要争论你的经验是否与我的一致,并且你知道兼容性会使其变慢?
    • 我同意 JVM 不是数字运算的最佳平台,但我不同意 Java 被(部分)解释的原因。
    猜你喜欢
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 2021-06-10
    • 2017-04-28
    相关资源
    最近更新 更多