TensorFlow (and stacks built over it) has the greatest mindshare, which allows Google to both optimize the capabilities of its ML offerings based on TensorFlow, knowing most developers will be familiar with it, and to increase profit margins on those services at the same time. TensorFlow makes a significant part of the ML stack convenient and accessible, and releasing it for free opened the flood gates for Google to expand the machine learning industry significantly while shifting the profit generation away from software and onto the cloud (data storage + compute resources).
Sublime execution, really. Once machine learning passes through this hype cycle (over the "trough of disillusionment" and onto the "plateau of productivity"), Google will likely have made the majority of the machine learning industry accessible enough for most software engineers to pick up something like TensorFlow and hit the ground running, which will gradually exert a downward pressure on ML specialized salaries for all but the top end. But this will continue even as the industry continues to expand, which means Google will come out ahead earning even more profit even if salaries plateau or decrease.
1) Compilation speed for a jumbo CNN architecture: Tensorflow took 13+ minutes to start training every time network architecture was modified, while PyTorch started training in just over 1 minute. PyT suits my style of interactive coding far better.
2) Memory footprint: I was able to fit 30% larger batch size for PyTorch over Tensorflow on Titan X cards. Exact same CNN architecture.
Both frameworks had major releases since May, so I am sure these metrics might have changed by now. However I ended up adopting PyT for my project.
Google is actually very scared of PyTorch since nearly all new AI research papers are using PyTorch. This means in 1-2 years or so, most companies will be using PyTorch for training and Caffe for deployment. Tensorflow doesn't even have an implementation of the latest ImageNet winner, DenseNet, but PyTorch does!
I have sources on the Tensorflow team saying they are scrambling to make another higher level wrapper for tensorflow at the level of PyTorch.
EDIT: I second that regardless of motivation, this is a step forward.
> We developed ONNX together with Microsoft to bridge this gap and to empower AI developers to choose the framework that fits the current stage of their project and easily switch between frameworks as the project evolves.
ML workflows tend to be very heterogenous with people using everything from sklearn to DL4J to play with data. standardized serialization formats make it possible to bring results from those experiments back into a hardened productionized environment for serving the model.
Corporations like Facebook and Microsoft do not like interoperability... until and unless it's in their best interest.
The goal here is to make AI frameworks easily interchangeable: build your model with whatever framework you like; it will run unchanged on all other frameworks/platforms/stacks.
Regardless of the motivations, I actually think this is GREAT NEWS, and I hope that Amazon and maybe Apple, and eventually hopefully Google too will introduce and promote compatibility with this standard.
We all benefit from more interoperability.