Similarly, take a look at the deep learning library market: caffe (I think out of Stanford?), tensorflow (google), pytorch (FB + MS)... each has different strengths, but I'm sure glad the pytorch people pushed ahead, even though google put a ton of marketing effort into TF, simply because now we have more awesome things :).
Once a market or product is mature, then I can see the "duplicates are wasteful". But a nascent, exploratory field like ML/DL needs as many different approaches as is possible.
Now, if only we could gradient descent to find the optimal approach ;).
If you don't need mobile on-device D.L., take a look at pytorch. Otherwise, Tensorflow.
Fasi.ai will release some excellent self-paced coursework in January for Pytorch. Best bang for the buck (free, but time ain't) I've seen in any AI learning. Much of the lower level stuff is optimized for you, and he gives some great SOTA tricks for getting in the top 10% in kaggle competitions in like an hour or two.
Alas, no pytorch on device yet. But the state of the art is nearly 100% turnover every year, so the question becomes: do you need SOTA? Many problems are 98+% solved these days, so maybe we've reached "good enough" with some of these applications of d.l.
For many (most?) users outside of Google and Facebook the most important feature is "is there an off-the-shelf implementation of new technique XXX or do I have to build it myself?"
For most users the sensible choice comes down to Keras+Tensorflow or PyTorch.
However it's worth pointing out that theano's API is somewhat similar to tensorflow so migrating shouldn't be too hard and should be fairly easy to test
- AutoML is used to automate the design of the ML model.
- Population-based trained is used to automate the choice of the hyperparameters (e.g. the rate of learning).
If you wanted to use both, you'd first use AutoML to find a good design for your problem, and then you'd use PBT when training your network.