java - DeepLearning4j k-均值非常慢

标签 java multithreading k-means deeplearning4j nd4j

我正在尝试使用DL4J的K-Means实现。我将其设置如下:

int CLUSTERS = 5;
int MAX_ITERATIONS = 300;
String DISTANCE_METRIC = "cosinesimilarity";
KMeansClustering KMEANS = KMeansClustering.setup(CLUSTERS, MAX_ITERATIONS, DISTANCE_METRIC);

我的数据点是大小为300( double )的 vector ,我的测试集每次(给定或获取)由〜100个数据点组成。我以单线程方式在我的CPU(4核)上运行它。

评估需要很长时间(每个示例几秒钟)。

我偷看了算法的实现,看起来它的并发级别很高-正在创建许多线程(准确地说是每个数据点一个)并并行执行。
也许这是一个矫kill过正?
有什么办法可以通过配置控制它?其他加快速度的方法吗?如果不是,是否还有其他基于Java的快速解决方案来执行k-means?

最佳答案

“DL4J支持GPU,并与诸如Apache Spark和Hadoop之类的分布式计算软件兼容。”来自https://deeplearning4j.org

额外的Spark或Hadoop实例可能有助于扩展性能。

关于java - DeepLearning4j k-均值非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46995912/

相关文章:

Java:将文件模式转换为正则表达式模式

php - C中的多线程程序 : calculating thread stack space

python - multiprocessing.Queue : Broken pipe error

c++ - 为什么线程同步不起作用?

python - Pyspark:K表示模型拟合时的聚类误差

java - android.os.Bundle 无法在 libgdx Android 项目中解析

远程计算机上的 Java 登录用户名

java - 重定向或转发维护 BindingResult

python - 如何查找与 KMeans 在同一集群中的文档

spss - SPSS-在因素分析后使用K-means聚类