5 ms·
It's nice to see people building on top of TF rather than continuing to develop completely new frameworks. I've been working with TF in detail for several mont
by Cacti 10y ago
It's nice to see people building on top of TF rather than continuing to develop completely new frameworks.
I've been working with TF in detail for several months now and it is a very nicely designed framework. It is quite low-level, as you pointed out, (and so can be a challenge to get used to, and why you see helper wrappers/libs like this and keras popping up) but ML models and methods are becoming increasingly complex and TF provides exactly the foundation and flexibility needed to implement this stuff while still being able to slap together some basic layers if you need to. It also helps that the engineering is very solid (e.g., distributed models and datasets) and most of the performance kinks by now have been worked out.
For those maybe putting off working with TF because of its steepish learning curve, I'd strongly suggest you dive in. I learned last year in the usual method (docs + google), but the new OReilly books are the first good ones I've seen if that's your style.
The analogy with C++ is a good one, and historically appropriate given how scarce GPU resources are now.
- eanzenberg 10y agoIf you're already using TF, have you looked into keras? Does it not have the complexity or control you are looking for?
- rw 10y agoTensorFlow is a dataflow computation system. Keras is for building neural networks. Each exists at a different level of abstraction.
- Cacti 10y agoKeras is a wrapper around TF to make some common model operations easier (construction of linear layers of nets like a CNN) and to make common training operations easier. So you can still do whatever with Keras by combining it with lower level TF operations, it's not really keeping you from doing anything. But more complex layer types and training might have to be rolled by hand, at which point it can be easier to just do it all at the lower level TF ops. This comes up a lot when implementing newer papers where they are proposing new training methods or Operations where you really need the flexibility to get in there and manipulate the ops directly.