Best Julia library for neural networks
-
16-10-2019 - |
Pergunta
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.
Solução
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.
Outras dicas
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
- Doesn't have yet low level operations for algorithm implementation. But they are working on this issue (https://github.com/dmlc/mxnet/issues/586)
As of Oct 2016 there's also a Tensorflow wrapper for Julia:
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(...))
One newer library to look at as well is Knet.jl. It will do things like use GPUs under the hood.