简体   繁体   English

在Spark MLlib上使用Java中的Breeze

[英]Using Breeze from Java on Spark MLlib

While trying to use MLlib from Java, what is the correct way to use breeze Matrix operations? 在尝试使用Java中的MLlib时,使用breeze Matrix操作的正确方法是什么? For eg multiplication in scala it ist simply " matrix * vector ". 对于例如scala中的乘法,它只是“ matrix * vector ”。 How is the corresponding functionality expressed in Java? 如何用Java表示相应的功能?

There are methods like " $colon$times " which might be invoked by the correct way 有一些方法,如“ $colon$times ”,可以通过正确的方式调用

breeze.linalg.DenseMatrix<Double> matrix= ...
breeze.linalg.DenseVector<Double> vector = ...  

matrix.$colon$times( ...

one might need an operator instance ... breeze.linalg.operators.OpMulMatrix.Impl2 But which exact typed Operation instance and parameters are to be used? 一个人可能需要一个运算符实例... breeze.linalg.operators.OpMulMatrix.Impl2但是要使用哪个确切类型的Operation实例和参数?

It's honestly very hard. 说实话,这很难。 Breeze makes very very heavy use of implicits, and they just don't translate well into Java. Breeze非常大量地使用了implicits,它们只是不能很好地转换为Java。 We have some Java friendly wrappers for signal processing, but nothing for linear algebra. 我们有一些用于信号处理的Java友好包装器,但没有线性代数。 (I'd happily take a pull request that provided some support for wrapping things.) (我很乐意接受拉动请求,为包装物提供一些支持。)

Have a look at https://spark.apache.org/docs/2.2.0/api/java/org/apache/spark/mllib/linalg/BLAS.html , which contains many of the BLAS linear algebra operations. 请查看https://spark.apache.org/docs/2.2.0/api/java/org/apache/spark/mllib/linalg/BLAS.html ,其中包含许多BLAS线性代数运算。 These can be used by both Scala and Java. 这些可以由Scala和Java使用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM