28 comments

[ 3.0 ms ] story [ 84.6 ms ] thread
It's nice to see Leaf coming along so well. Part of me would love to be able to build models in rust.

For more benchmarks (including updated TensorFlow performance with cudnn v4) see https://github.com/soumith/convnet-benchmarks

Too bad Tensorflow Cuda only works with the top of the line NVIDIA cards that cost over 1k.
Can you expand on that? As far as I'm aware that's not true (anymore). It runs quite fine on AWS which uses older NVIDIA cards and I know several people use it on older-gen GPU-enabled MBPs.

EDIT: clarification

https://www.tensorflow.org/versions/r0.7/get_started/os_setu...

I guess the cards listed there are not an all inclusive list?

Yeah, those are just cards we know that work: we don't have all possible GPUs to test our 20+ changes a day on, so we can't formally guarantee it will work on older cards, but in general we try our best to keep it all working for older and even newer cards.
Maybe a "reported to work but not guaranteed" section is in order.
Keeping that up-to-date and useful is as hard as keeping benchmarks in Deep Learning up to date ;)
From that page:

> Supported cards include but are not limited to[...]

Not true, works on GTX 750ti out of the box which is currently around $130
Just curious, does this benchmark include models quality somewhere?
You mean, comparing the performance after training a model?
Performance in terms of model accuracy. How accurate will be those models.
No accuracy is not included, since that is something that should be constant for each model across frameworks.

These benchmarks aim to highlight the performance differences in terms of speed/memory usage across frameworks and machine configurations.

There is also the practical hurdle that training imagenet models to maximum accuracy takes 1 week+.

So, are you saying that output of all frameworks are exactly and always the same?

Sorry, if I am asking stupid questions.

Not exactly, no. But not even the output of the same framework will always be the same since you are usually randomly initalizing the weights in a network and randomly picking the samples used in SGD[1] (the seed for the RNG could of course be a fixed one to mitigate this somewhat).

But in the end, if you are using the same model, the same solver and the same RNG, yes the output of all frameworks should be the same. In practice this also mostly holds true, since the stochastic processes involved are geared towards finding a good local minimum, which is the same given a model and a dataset.

[1]: https://en.wikipedia.org/wiki/Stochastic_gradient_descent

So, there is a strong chance that you are comparing very different things, and frameworks which perform not good in terms of speed can be far superior in terms of models quality.
I just patched the link on the landing page to the repo [1] and updated benchmarks for Leaf 0.2 + cuDNN 4 for Overfeat and VGG. But I couldn't get Torch and Tensorflow running with cuDNN 4, yet.

[1]: https://github.com/autumnai/deep-learning-benchmarks

Feel free to ping us (TensorFlow) on github issues to get installation issues resolved -- on cudnn r4 we're doing much better, and we're soon to check in a series of changes to get us roughly on par with Torch on cudnn r4.

We'd love to get a more up-to-date representation of the state of our own progress :)

Great, I will let you know. Looking forward to the benches.
Curious - no Theano benchmarks?
We would love to include those, but we didn't find the implementation for the tested models for Theano, yet. Do you have link? You can also submit your own Benchmarks via PR, if you'd like to.
Ah. I'd look at keras examples - they have alexnet and VGG right now. Although, an exact implementation may be hard to find - the best you can do is an "alexnet~ish" implementation keeping some keras graph limitations on convs.

I haven't run any in a while so I don't have the data myself, unfortunately.

Great work btw.

What was the motivation to build leaf?

Great input, thank you so much for the links. I will try to get them to work and publish the results. Same with Keras and LSTMs, very curious to see those.