Live data from Hacker News

The State of Machine Learning Frameworks

thegradient.pub

91–100 of 201 posts

Re: The State of Machine Learning Frameworks

#91

Whatever happened to Julia? Wasn't it supposed to incorporate all these incredible abstractions at the language level and run quickly on GPUs and everything in-between? Is it just lack of adoption or is has it something else?

Julia works with CUDA on Windows without the need for Visual Studio since Julia is LLVM based.

Re: The State of Machine Learning Frameworks

#93

We use Pytorch extensively in our startup. We tackle a lot of new research problems as consultants/partners to help develop products or devise new algorithms/models to solve tasks for our customers. We have never regretted our choice to pick Pytorch. I found the article pretty spot on when comparing Tensorflow and Pytorch. The things that have appealed to me about Pytorch are: 1. Extremely easy to debug and work with…

Last year I was tasked with looking into a NAS (Neural Architectures Search) paper and analyzing the algorithm. The paper came with a TensorFLow implementation. Trying to read that TF code was quite difficult. I searched around and found a PyTorch implementation - much easier to read and understand, and it ran about 50% faster as well (the latter was a bit surprising). I tend to think that TensorFlow lends itself to…

I will add further to this point.

There will be bad model code in both PyTorch and TensorFlow. The difference is that, bad PyTorch code reads like bad Python code, and I've accumulated a lot of experience reasoning through bad Python code. Bad TensorFlow code can come from any one of of the history of paradigms that TF has gone through, and I don't even know if it's bad or just some funky new TF functionality I'm unfamiliar with.

Re: The State of Machine Learning Frameworks

#94

Earlier quoted context omitted.

Are you saying tensorflow doesn't have more code to check in or that even bad engineers don't pretend that checking in more code looks productive?

Not even bad engineers pretend like more code == more productive. Emphatically so.

Well, the worst engineers don't push any code so maybe it looks like they don't think writing more code is productive.

However its been my experience that the average engineer believes this. They often aim to push some amount of code (meaningful or not) every few days or so.

The best engineers I know write a lot of code overall but are more interested in ensuring they build the right thing and are ok with not pushing code for a while if they need more time.

Re: The State of Machine Learning Frameworks

#95
Like others here, at work we switched over from TensorFlow to PyTorch when 1.0 was released, both for R&D and production. Our productivity and happiness with PyTorch are noticeably, significantly better.

Back when we were using TensorFlow, whenever we wanted to try something new, sooner or later we would find ourselves wrestling with its computational graph abstraction, which is non-intuitive, especially for models with more complex control flow.

That said, we are keeping an eye on Swift + MLIR + TensorFlow. We think it could unseat PyTorch for R&D and eventually, production, due to (a) the promise of automatic creation of high-performance GPU/TPU kernels without hassle, (b) Swift's easy learning curve, and (c) Swift's fast performance and type safety. Jeremy Howard has a good post about this: https://www.fast.ai/2019/03/06/fastai-swift/

Re: The State of Machine Learning Frameworks

#96
post #24

We really enjoyed editing this piece. Just wanted to doubly highlight a few of Horace's (chillee on HN) resources linked at the bottom: Code: https://github.com/Chillee/pytorch-vs-tensorflow Ablation of claims: https://thegradient.pub/p/cef6dd26-f952-4265-a2bc-f8bfb9eb1e... JS interactive charts: https://chillee.github.io/pytorch-vs-tensorflow/

Great piece, you might want to update the article with the mention of PyTorch Mobile that released today: https://pytorch.org/mobile/home/

Re: The State of Machine Learning Frameworks

#97
post #66

Why engineers like Tensorflow: - More code to check-in (Looks more productive) - More infrastructure, e.g. checkpoints, exporters etc. (Looks like they're doing more work) - Fancy visualizations (Allows them to look impressive while presenting loss plots) - Easier to reuse things others have implemented and still get credit for it (TF model zoo, research repo etc.) Why researchers like pytorch: - Way easier to hack t…

Why engineers like Tensorflow: With those bullet points, looks like you didn't talk to actual engineers, but rather middle-layer management people.

Unfortunately, you're way off the mark here. Its actually more of the opposite. Perhaps we have a different set of experiences, but your assumption here is not the cause of our difference in opinions.

Re: The State of Machine Learning Frameworks

#98

Earlier quoted context omitted.

My very biased opinion: you start with PyTorch because it's easy to develop and debug, and there's no point in having the fastest tools for a model that you can't train properly. Once your model is running, and if/when you start hitting performance bottlenecks, then you consider migrating your model to TensorFlow.

But isn't TF eager mode just as easy to develop and debug, and the migration of TF eager mode to TF static mode is then probably simpler?

TF eager mode has been a stable/supported thing for 10 days, since the release of 2.0. Before then it was available as opt-in behavior that once enabled meant all bets were off for if things would work or explode. So I think it's too early to answer your question. Maybe 2.0 bridges the gap to PyTorch in development speed. But maybe the momentum has already shifted to PyTorch.

Re: The State of Machine Learning Frameworks

#99

Whatever happened to Julia? Wasn't it supposed to incorporate all these incredible abstractions at the language level and run quickly on GPUs and everything in-between? Is it just lack of adoption or is has it something else?

If you mean Zygote.jl, it's a very ambitious project (like Swift for Tensorflow which has been under development for even longer I believe) with not many people working on it compared to Tensorflow and pytorch. And Pytorch for example only supports the method it decides to overload, while Zygote aims to support everything in the language (including stuff that isn't as obvious like state, IO, control flow in general). And then you have optimizations over the computation graph, memory management on GPU and many corner cases I can't imagine.

Though you can already use very clean Pytorch style libraries like Flux and Knet or the Tensorflow bindings to leverage the benefits of Julia for high performance numerical processing on the adjacent tasks such as data preprocessing.

Re: The State of Machine Learning Frameworks

#100
post #25

Earlier quoted context omitted.

And simply TensorFlow was there earlier, so people implemented stuff in it. I think there's more inertia in industry, whereas researchers may more easily switch frameworks between two papers.

And Keras was there too which made a lot of people us Keras with TF. I doubt if TF would have risen to this popularity hadn't it been to Keras.

Exactly this. Keras made TF easy.
Post reply on HN