A table for quick comparison
This table compares Chainer with other popular deep learning frameworks.
We hope it helps you to choose an appropriate framework for the demand.
Note
This chart may be out-dated, since the developers of Chainer do not perfectly follow the latest development status of each framework.
Please report us if you find an out-dated cell.
Requests for new comparison axes are also welcome.
|
|
Chainer |
Theano-based |
Torch7 |
Caffe |
Specs |
Scripting |
Python |
Python |
LuaJIT |
Python |
Net definition language |
Python |
Python |
LuaJIT |
Protocol Buffers |
Define-by-Run scheme |
Y |
|
|
|
CPU Array backend |
NumPy |
NumPy |
Tensor |
|
GPU Array backend |
CuPy |
CudaNdarray |
CudaTensor |
|
NNs |
Reverse-mode AD |
Y |
Y |
Y |
Y |
Basic RNN support |
Y |
Y |
Y (nnx ) |
#2033 |
Variable-length loops |
Y |
Y (scan ) |
|
|
Stateful RNNs |
Y |
Y |
Y |
|
Per-batch architectures |
Y |
|
|
|
Perf |
CUDA support |
Y |
Y |
Y |
Y |
cuDNN support |
Y |
Y |
Y (cudnn.torch ) |
Y |
FFT-based convolution |
|
Y |
Y (fbcunn ) |
#544 |
CPU/GPU generic coding |
Y |
|
Y |
|
Multi GPU (data parallel) |
Y |
Y |
Y (fbcunn ) |
Y |
Multi GPU (model parallel) |
Y |
Y |
Y (fbcunn ) |
|
Misc |
Type checking |
Y |
Y |
Y |
N/A |
Model serialization |
Y |
Y (pickle ) |
Y |
Y |
Caffe reference model |
Y |
|
Y (loadcaffe ) |
Y |