2

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

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

我的数据点是大小为 300(双精度)的向量,我的测试集每次包含约 100 个数据点(给予或接受)。我以单线程方式在我的 CPU(4 核)上运行它。

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

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

4

1 回答 1

0

“DL4J 支持 GPU,并且兼容 Apache Spark 和 Hadoop 等分布式计算软件。” 来自https://deeplearning4j.org

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

于 2018-09-23T20:19:55.877 回答