Good move. I'd much rather it worked well for one backend then sucked mightily on all of them. Eager mode means that for the first time ever you can _easily_ debug programs using the TensorFlow backend. That will be music to the ears of anyone who's ever tried to debug a complex TF-backed model.
Since TF included Keras in its codebase, I have been wondering if Keras would be acquired by Google. Is this the reality of the open source world we live in. TF vs Pytorch - Google vs FB. C
AI frameworks are enormously complex pieces of software—a mixed bag of GPU acceleration, math utilities, low and high-level implementations of state-of-the-art components, and a (hopefully, eventually, but not usually) friendly interface to tie it all together.
While Keras is certainly useful, it was only possible because of the underlying libraries (i.e. Theano, TensorFlow, etc.) However, maintaining useful frameworks on a shifting landscape of underlying libraries often results in mismatches which leads to weird incompatibilities, performance regressions, numerical instabilities, etc. Even the big players deal with these issues internal to their own AI frameworks.
Moreover, due to performance and deployment requirements, and the rapid development of the field, these underlying libraries are often tightly coupled or have poorly defined API interfaces for third-parties outside of "model development".
It's not impossible to have well-defined abstractions but "AI" is too new, too varied and too ill-defined itself to have developed those abstractions sufficiently for _large_ indie frameworks to be successful to a broader community. It would be similar to trying to design a high-level framework for "software development". Again, not impossible—Keras did much better than most—but exceedingly difficult for independent developers. Therefore, we're left with only the biggest players.
It's not all bad news, though. There's certainly room for independent development, but outside of hobby projects or thought experiments, I don't think these contributions are effective at the broadest level of scope. The best way for independent developers to contribute and keep their sanity is on implementations of individual components, utilities, or abstractions for specific use cases which don't try to be everything to everyone.
last I checked, there's also amazon/microsoft pushing MX.net (which seems mature and actually seems to have tooling which is not presuming the user is Google-internal)
Keras still has CNTK and Theano backends in addition to Tensorflow. Given that both frameworks are not being developed anymore, is there any point in maintaining those backends in the future?
> Development will focus on tf.keras going forward. We will keep maintaining multi-backend Keras over the next 6 months, but we will only be merging bug fixes.
and I thought there was discussion about including mx.net. Looks like if you want to build, train and reuse NNs (in an established framework) you finally have to choose between Google, Facebook or Amazon/Microsoft in every case.
I guess it's going to be just TensorFlow in the near future. From the release notes:
> This is also the last major release of multi-backend Keras. Going forward, we recommend that users consider switching their Keras code to tf.keras in TensorFlow 2.0.