Hacker News new | ask | show | jobs
by jo_ 4256 days 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 Their talk has links to a lot of other implementations.

(Python) PyLearn2: https://github.com/lisa-lab/pylearn2 Another popular deep-learning project.

(Java) DeepLearning 4j: https://github.com/agibsonccc/java-deeplearning

(C++ + Python) Cuda-Convnet: https://code.google.com/p/cuda-convnet/ Has C++ for the learning portions and Python glue.