2014-12-02 126 views
2

嘗試從Java使用MLlib時,使用breeze Matrix操作的正確方法是什麼? 例如在斯卡拉乘法它只是「matrix * vector」。 Java中相應的功能是如何表達的?從Spark上使用Breeze MLlib

還有像「$colon$times」的方法可能通過正確的方式

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

matrix.$colon$times(... 

一個可能需要操作實例調用... breeze.linalg.operators.OpMulMatrix.Impl2 但它的確切類型的操作實例和參數都可以用嗎?

+0

您可以嘗試Java的'common Math'。 – 2016-12-28 13:13:43

回答

1

說實話很辛苦。 Breeze非常使用implicits,而且它們不能很好地轉換成Java。我們有一些用於信號處理的Java友好包裝,但對線性代數沒有任何幫助。 (我很樂意接受一個提供一些支持來包裝東西的拉取請求。)

+0

好的,謝謝你的提議,但是我們多久會遇到許多潛在矩陣操作的問題?這真的可行嗎?這可以處理幾乎消耗整個RAM的矩陣嗎?將MLlib矩陣轉換(並且可能持久)並將其加載到Java更常用的矩陣庫(如commons-math或parallel colt)將成爲在MLlib上使用Java時的一種方式? – Mechanee 2014-12-19 11:34:33