2017-09-13 6 views
0

Scala Breezeマトリックスに独自の要素別UFuncを実装しようとしているので、その関数をマトリックスの各要素に適用することができます。 Breeze.numericsパッケージをガイドとして使用してみました:Scala Breezeでelementwise UFuncを実装する

object step extends UFunc with MappingUFunc { 
implicit object stepImplDouble extends Impl[Double, Double] { 
    def apply(x: Double) = if (x >= 0.5) 1.0 else 0.0 
} 

かなり簡単ですね。

Error:(60, 26) could not find implicit value for parameter impl: dev.elm.step.Impl[breeze.linalg.DenseMatrix[Double],VR] 
    case "step" => step((M(::, *) + bias).t) 
Error:(60, 26) not enough arguments for method apply: (implicit impl: dev.elm.step.Impl[breeze.linalg.DenseMatrix[Double],VR])VR in trait UFunc. 
Unspecified value parameter impl. 
    case "step" => step((M(::, *) + bias).t) 
:しかし、コードはコンパイル時にエラーを与える出力H.を与え、マトリックスに、

val H: BDM[Double] = step((M(::,*) + bias).t) 

すなわち要素によってそれを機能素子を適用します。私は次のように機能を使用しようとしています

これは前の質問で私が提起したエラーと非常によく似ています。行列の引数が必要かもしれないように思えますが、MappingUFuncの特性ですべてが扱われていると思いました。どんな助けにも感謝!ありがとう

答えて

0

これはオブジェクトなので、宣言の順序は重要です。 最初の呼び出しよりもコードの方が上位に配置するか、それを独自のファイルに引き出します。

関連する問題