5 ms·
Short answer: Python and R for academic. Java or C++ for production. Julia has some followers, LUA has a Deep Learning Implementation. Python+CUDA+C++ is ver
by jo_ 12y ago
Short answer: Python and R for academic. Java or C++ for production. Julia has some followers, LUA has a Deep Learning Implementation. Python+CUDA+C++ is very common in deep learning.
---
Chiming in as a machine learning researcher. My experience is primarily focused on the 'deep learning' buzzword at the moment, so people still researching SVM/NN/clustering may have different experiences.
Academic machine learning is starting to shift towards Python. Most (all?) of the main deep learning packages have either Python as the core (like PyLearn2 + Theano) or a strong Python component (like Caffe or DeepLearn). There is some Java presence (like DeepLearning4j) and some C++ mixed in for the very high performance code. Usually people will write the glue code in Python and then do the heavy matrix-intensive operations using PyCuda or cuBLAS (which are, to oversimplify, Python wrappers of C++ calls to CUDA/OpenCL code).
Some of the bigger names in Deep Learning:
(C++ w/ Python & Matlab support) Caffe: https://github.com/BVLC/caffe https://github.com/BVLC/caffe Their talk has links to a lot of other implementations.
(Python) PyLearn2: https://github.com/lisa-lab/pylearn2 https://github.com/lisa-lab/pylearn2 Another popular deep-learning project.
(Java) DeepLearning 4j: https://github.com/agibsonccc/java-deeplearning https://github.com/agibsonccc/java-deeplearning
(C++ + Python) Cuda-Convnet: https://code.google.com/p/cuda-convnet/ https://code.google.com/p/cuda-convnet/ Has C++ for the learning portions and Python glue.