Hacker News new | ask | show | jobs
by sseveran 2395 days ago
So we have been a TensorFlow shop since well before 1.0. We are keeping tabs on PyTorch with an eye on moving in that direction as certain things get filled, notably serving and something that is really comparable to tf.data.

The fact that our team in particular is looking at moving is probably a disaster for TF since a number of the criticisms typically leveled at it we didn't see as issues. We have a couple of really strong people with haskell backgrounds so static graphs and laziness we didn't find to be problematic.

However the embrace of Keras in 2.0 has left us dumbfounded. On one hand having a consistent layer interface is nice. On the other hand having a base class for the loss function that is not sufficiently general, the fact that all non-toy models we build seem to need model subclassing and a custom training loop with GradientTape and the number of issues we ran into while trying to port a couple of models has led me to conclude that the release was not ready. So while we like the tools around the model (tf.data, tensorboard, serving, tfx, etc...) building actual models I think has gotten worse.

Now my opinions on PyTorch are not from shipping production models but mostly porting to TF and keeping tabs on what they are doing. PyTorch also makes it easy to define reusable units. It does not try and expose a higher level interface that requires a significant investment in learning to express complex or unusual models. It seems a bit less opinionated on what the user should do.

A couple of other notes, PyTorch is being used inside Google for research I think. They have now written several papers (including one with Jeff Dean as 5th author) that have had their code released in PyTorch. PyTorch I think (it might already have) will end up with better governance but I would be interested in others opinions. They have at least one person listed under the project maintainers who does not work for FaceBook. A reason for adopting PyTorch may be that one company just does not decide to radically change the project to fit their view of the world.

This last bit is purely conjecture. PyTorch I think has already won over TF and it is going to take a couple of years for it to play out. If I had to bet today I would bet that PyTorch will become the dominate framework for both research and production. Of course something could happen to derail that but if things continue on their current trajectories I think its inevitable.

1 comments

I echo this. While 2.0 initially made me happy building some models from scratch, as soon as I needed to write my own optimizers, losses, class weights, etc. it became a nightmare. Also not to mention the data pipeline for large imagesets required you to serialize the data first into tfrecords. Please just stream AND shuffle images in a folder tensorflow.