On Fri, Mar 19, 2010 at 11:18 PM, David Warde-Farley <dwf@cs.toronto.edu> wrote:
On 19-Mar-10, at 1:13 PM, Anne Archibald wrote:
I'm not knocking numpy; it does (almost) the best it can. (I'm not sure of the optimality of the order in which ufuncs are executed; I think some optimizations there are possible.) But a language designed from scratch for vector calculations could certainly compile expressions into a form that would save a lot of memory accesses, particularly if an optimizer combined many lines of code. I've actually thought about whether such a thing could be done in python; I think the way to do it would be to build expression objects from variable objects, then have a single "apply" function that fed values in to all the variables.
Hey Anne,
Some folks across town from you at U de M have built just such at thing. :)
http://deeplearning.net/software/theano/
It does all that, plus automatic differentiation, detection and correction of numerical instabilities, etc.
Probably the most amazing thing about it is that with recent versions, you basically flip a switch and it will instead use an available CUDA- capable Nvidia GPU instead of the CPU. I'll admit, when James Bergstra initially told me about this plan to make it possible to transparently switch to running stuff on the GPU, I thought it was so ambitious that it would never happen. Then it did...
The progress Theano is making is promising. I had several times a look at theano and I like the idea of code generation, especially the numpy support. I hope it may be useful for one of my projects in the future. What I couldn't figure out from the documentation is the actual performance and ease of use. Am I right with the assumption that you are not a Theano dev? Have you used Theano in a project? What are you experiences? Do you happen to know how big the computational graphs can be? Is there the possibility to have loops and if then else statements? Sorry for being a little offtopic here. Sebastian
David _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion