2016-05-13 94 views
3

我们正在使用神经网络开发一个Java项目。我们想在我们的数据集上测试不同的网络结构。现在我们评估哪些Java神经网络在性能方面最好。我们正在评估Encog,Neuroph和DL4J。你能告诉我们一些好的资源或你自己的经验吗? 感谢性能Encog vs Deeplearning4J

回答

6

Deeplearning4j创作者在这里:

  • Encog是在90年代初写的杰夫·希顿,并在很长的时间标准的Java DL框架。我不相信Encog处理分布式计算,可以与GPU,Hadoop,Spark或Kafka一起工作,或者自2006年以来考虑到DL中许多算法的进步。(杰夫,如果我错了,请纠正我)

  • Deeplearning4j完成所有这些事情。它适用于使用Spark作为访问层的分布式CPU或GPU。它已经通过CDH5认证,并很快通过HDP认证......它包括LSTM(RNN),深度卷积网络,RBM,DBN和word2vec以及其他神经网络的实现。它是目前最流行的用于JVM的DL工具,也是全球排名前五的DL库之一。

  • Deeplearning4j由数值计算库ND4J或用于Java的n维数组驱动。基本上,我们将Numpy移植到JVM。这使DL4J具有可扩展性,并且您会看到我们在不久的将来添加了其他算法,如强化学习。反过来,ND4J在libND4J上运行,这是一个使计算速度更快的C++库。我们还构建了矢量化库Canova,它可以处理任何类型的数据,并将其转换为神经网络可以理解的矢量。我们正试图解决神经网络上游的一些ETL问题。

  • Neuroph有很强的可视化,但我不能判断他们框架的其余部分,所以我会让他们为自己说话!

    http://deeplearning4j.org

    https://github.com/deeplearning4j

    https://github.com/deeplearning4j/nd4j

    https://github.com/deeplearning4j/libnd4j

有在Deeplearning4j的Gitter的用户支持渠道近2000个开发者。请有加入我们,如果您有任何疑问:

https://gitter.im/deeplearning4j/deeplearning4j

1

我只有在Java世界Deeplearning4j和Encog一些经验,我认为这完全取决于你的目标是什么。 Deeplearning4j无疑是2中最复杂的框架;它有很棒的工具,它可以与GPU一起工作,它支持像LSTM和卷积NN这样的东西,它已经被设置用于分布式培训等。 虽然它既复杂又酷,它也可以是一个PITA。当主页希望您使用特定的IDE并指向冗长的依赖项目的安装指南时,您知道它不会非常简单。 但它是值得的,如果你需要它。

这就是说,在某些情况下,Encog仍然有很多需要说明的地方。它非常容易与任何Java项目集成;它只是一个.jar包含和离开你去。 它非常快速并且非常高效地使用您的CPU内核,它有一个非常好的和易于理解的API。如果你需要一个Java库来高效地实现一个前馈NN,或者如果你想了解更多关于机器学习的知识,我不能推荐Encog。 当你碰到Encog的限制时,试试Deeplearning4j或者看看java之外的东西,然后尝试类似Tensorflow(它也有一些Java支持)。

0

我可以告诉你我的经验。

早在2015年,我一直在寻找一个优秀的深度学习Java框架。经过最初的研究后,我遇到了Encog。我很快意识到它缺乏现代神经网络的许多组件,即它已经过时了,而且即使设置它也有很多麻烦(它不是很灵活)。顺便说一句,它允许在CPU上进行并行计算。

所以我决定写我自己的框架,我仍然使用和运作良好。然后我遇到了deeplearning4j,我可以告诉你它非常完整,计算速度非常快。我想说的是,如果你想看看15年前神秘的网络框架使用Encog,否则没有理由使用它,使用deeplearning4j,或尝试一些python DL框架。

+0

顺便说一句,也试过Neuroph当时...你不想使用它。 – Diego