Crino: a neural-network library based on Theano
Crino is an open-source Python library aimed at building and training artificial neural-networks. It has been developed on top of Theano, by researchers from the LITIS laboratory. It helps scientists and/or programmers to design neural-network architectures adapted to their needs, using a modular framework inspired by Torch. Our library also provides vanilla implementations, and learning algorithms, for these architectures :
- auto-encoders (AE)
- multi-layer perceptrons (MLP)
- deep neural networks (DNN)
- input-output deep architectures (IODA)
IODA is a novel DNN architecture, which is useful in cases where both input and output spaces are high-dimensional, and where there are strong interdependences between output labels. The input and output layers of a IODA are initialized with an unsupervised pre-training step, based on the stacked auto-encoder strategy, commonly used in DNN training algorithms. Then, the backpropagation algorithm performs the final supervised learning step.
- Install Crino :
cd to/some/path git clone https://github.com/jlerouge/crino.git cd crino sudo python setup.py install
- Run the given example :
cd example chmod +x example.py ./example.py
- Adapt it to your needs! Crino is natively compatible with Matlab-like data or any format handled by SciPy/NumPy.
- Check the project documentation.
- What does "device gpu is not available" mean ? Your GPU card may not be compatible with CUDA technology (check http://www.geforce.com/hardware/technology/cuda/supported-gpus). If so, there is nothing to do. Otherwise, your theano installation may have a problem (see http://deeplearning.net/software/theano/install.html#using-the-gpu).
- Where does the name "Crino" come from ? We developed this library as an extension of Theano. In Greek mythology, Crino is the daughter of Theano.
About our project
If you use Crino and/or our IODA framework for academic research, you are highly encouraged (though not required) to cite the following paper:
- J. Lerouge, R. Herault, C. Chatelain, F. Jardin and R. Modzelewski, "IODA: an Input/Output Deep Architecture for image labeling", Pattern Recognition (2015), DOI: 10.1016/j.patcog.2015.03.017 [Epub ahead of print]
We would like to thank the authors of Theano :
- J. Bergstra, O. Breuleux, F. Bastien, P. Lamblin, R. Pascanu, G. Desjardins, J. Turian, D. Warde-Farley and Y. Bengio. “Theano: A CPU and GPU Math Expression Compiler”. Proceedings of the Python for Scientific Computing Conference (SciPy) 2010. June 30 - July 3, Austin, TX
IODA is partly based on the original work of B. Labbé et al. :
- B. Labbé, R. Hérault and C. Chatelain . “Learning Deep Neural Networks for High Dimensional Output Problems”. In IEEE International Conference on Machine Learning and Applications (ICMLA'09), December 2009.