Skip to content

Latest commit

 

History

History
44 lines (35 loc) · 1.5 KB

README.md

File metadata and controls

44 lines (35 loc) · 1.5 KB

scalaad

Automatic differentiation for Scala

Use

import com.kogecoo.scalaad.graph.Var  // always need to import
import com.kogecoo.scalaad.ScalarRule.Implicits._  // when x is a scalar variable

val x = Var(5.0)
val y = 2 * x + 3 * x * y

// forward-mode automatic differentiation
// partial differentiation w.r.t x
println(y.deriv(x))

// reverse-mode automatic differentiation computes a gradient
println(y.grad())

// we can get partial differentiation through `gradient` after running grad()
println(x.gradient)
println(y.gradient)

TODO

  • test
  • make it to be multiple package
  • exclude Nd4jRule and BreezeRule to other package
  • maven repo

Reference