Tensorflow User Experience
nostalgebraist.tumblr.com
nostalgebraist.tumblr.com
It is a disaster.
This type of exchange is pretty much what happens all the time: https://github.com/williamFalcon/pytorch-lightning/issues/35
There is no reason why two things can’t be merged together for better UX and functionality, but two humans have egos, want to lead projects, and be in charge, so things remain separate.
Software Engineering isn't just about put stuff out there, it also involves careful planning and roadmap around abstractions.
As high profile as a project as TF, if they don't have a clear way to tell having many parallel implementations for essentially the same functionality is confusing and hurt developer experience and ultimately harms the project itself, then that only explains the disaster , as a result of mismanagement, but doesn't undo the damage.
At least in the PyTorch world, the team's done a phenomenal job at allowing an ecosystem of related projects to contribute to one another and co-exist!
The goal of TensorFlow is to put itself in as many ML deployments as possible, paving the way for auto ml, which is where the real money lies.
https://github.com/tensorflow/tensor2tensor
> It is now in maintenance mode — we keep it running and welcome bug-fixes, but encourage users to use the successor library Trax.
I sympathize with the post's frustration. The TF tutorials on the official website are well-written. But they mostly cover basic features, and as a recent Reddit thread described (https://old.reddit.com/r/MachineLearning/comments/e4pxqp/d_i...), the support ecosystem is lacking as StackOverflow and blog posts are out-of-date due to all the software churning. I'm not a TF engineer, but as someone with experience designing libraries on top of TF, even I find myself sifting through Stack Overflow/blog post code to find the new best practices..
Regarding Bayesian layers, it's actually a NeurIPS paper this year (https://papers.nips.cc/paper/9607-bayesian-layers-a-module-f...). I worked on an early prototype in TensorFlow Probability but ended up abandoning the design as I found it inflexible in practice. The solution is the NeurIPS paper, and it's experimental: there are no promises of stability (in fact, we even moved the code from Tensor2Tensor to another repository (https://github.com/google/edward2/), of which has yet to have an official package release!).
Software for uncertainty models is more on the research fringe, and this should be made clearer in official TensorFlow solutions building on these designs.
The API is numpy plus like four functions. That's the beginning and end. It does JIT compilation under the hood, so can run quite fast.
When writing code in JAX, I often start by write code eagerly and then try to jit increasingly large pieces to get more performance.
You might also find the experimental control flow interesting since it tries to be more pythonic while also being possible to jit-compile. (https://github.com/google/jax/blob/master/jax/experimental/l...)
Since JAX's API is lower-level, you can choose a neural network API that doesn't have the problems of TF's API. Or worst case, you make it yourself; you can see that the higher-level APIs provided by JAX are all very simple.
PyTorch?
Also, everything you think or do is deprecated. This comment has been deprecated.
Every JavaScript web UI framework ever?
I created this for educational purposes, but it is quite robust, simple, well-tested, and well-documented. It also includes neural network style operations like N-dimensional convolutions and pooling.
Plus backprop through all variations of einsum :)
That what I like with Pytorch, they offer prebuilt packages for different versions of CUDA.
Now that the invariants are known, better abstractions have been designed, such as Keras.
First TensorFlow version was released the 9 November 2015.
Both had to follow the evolution of DL, but Keras was developer-friendly from the beginning.