12
$\begingroup$

I have been using this library for basic neural network construction and analysis.

However, it does not have support for building multi-layered neural networks, etc.

So, I would like to know of any nice libraries for doing advanced neural networks and Deep Learning in Julia.

$\endgroup$
  • 1
    $\begingroup$ github.com/dmlc/MXNet.jl $\endgroup$ – itdxer Nov 19 '15 at 9:40
  • 1
    $\begingroup$ @itdxer Thank you for the link. Can you put that as an answer by elaborating about it? $\endgroup$ – Dawny33 Nov 19 '15 at 10:17
7
$\begingroup$

Mocha.jl - Mocha is a Deep Learning framework for Julia, inspired by the C++ framework Caffe.

Project with good documentation and examples. Can be run on CPU and GPU backend.

$\endgroup$
  • 1
    $\begingroup$ I think they stopped developing Mocha and MXNet is the way to go forward. See malmaud's comment here: github.com/pluskid/Mocha.jl/issues/157 $\endgroup$ – niczky12 Aug 1 '16 at 13:31
  • $\begingroup$ I've used Mocha for a while, it's got some issues and lacks a community, I concur that MXNet is where active development is. There's also a Julia wrapper for Tensorflow: github.com/malmaud/TensorFlow.jl (disclamer: I haven't used either, MXNet or the TF Julia Wrapper) $\endgroup$ – davidparks21 Oct 8 '16 at 22:19
9
$\begingroup$

MXNet Julia Package - flexible and efficient deep learning in Julia

https://github.com/dmlc/MXNet.jl

Pros

  • Fast
  • Scales up to multi GPUs and distributed setting with auto parallelism.
  • Lightweight, memory efficient and portable to smart devices.
  • Automatic Differentiation

Cons

$\endgroup$
3
$\begingroup$

As of Oct 2016 there's also a Tensorflow wrapper for Julia:

https://github.com/malmaud/TensorFlow.jl

$\endgroup$
2
$\begingroup$

Just to add a more recent (2019) answer: Flux.

Flux is an elegant approach to machine learning. It's a 100% pure-Julia stack,
and provides lightweight abstractions on top of Julia's native GPU and
AD support. Flux makes the easy things easy while remaining fully hackable.

For example:

model = Chain(
  Dense(768, 128, σ),
  LSTM(128, 256),
  LSTM(256, 128),
  Dense(128, 10),
  softmax)

loss(x, y) = crossentropy(model(x), y)

Flux.train!(loss, data, ADAM(...))
$\endgroup$
1
$\begingroup$

One newer library to look at as well is Knet.jl. It will do things like use GPUs under the hood.

https://github.com/denizyuret/Knet.jl

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.