I need to use(in an application) Extreme Learning Machine(ELM) which is highly optimised for multiple CPUs or GPUs. As ELM main computation involves Moore-Penrose Pseudo inverse and matrix multiplication, what would be the best option to implement ELM among Theano and Caffe ?

Secondly, Is it possible to implement a new learning algorithm(ELM) in Caffe using its python interface ?