We have theano and numpy in Python to do symbolic and numeric computations, optimising our Machine Learning computations (eg: Matrix multiplications and GPU usage). What are the relevant tools in Clojure to do Machine learning (or at least things like matrix multiplications)?
An important library / tool for mathematical operations, statistics and more in Clojure is incanter. There is also clatrix wrapping jBlas for matrix operations.
With regard to machine learning in general, there are at least two libraries interfacing / wrapping Apache Spark which includes MLlib for machine learning: there is sparking and flambo. clj-ml is basically a wrapper around Weka and some additions. Finally, clojure-opennlp is a wrapper around opennlp, an NLP toolkit comparable to NLTK in Python.
This list of ML tools provides quite some more links.
For the matrix/vector side there's core.matrix
which is a plug-able library with an implementation at
vectorz-clj
that is being actively developed, and other high perf libs exist. Usage from the readme:
(def M (matrix [[1 2] [3 4]]))
(def v (matrix [1 2]))
(mul M v)
=> #<Matrix22 [[1.0,4.0],[3.0,8.0]]>
A 'mentor' to the project mentioned on an answer to this SO question that GPU was a target, but no mention of it in the docs.
What kind of specific functionality do you need as your question is a bit broad? Have you tried anything?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With