5 ms·
Tensorflow Eager provides dynamic graph computation similar to PyTorch. https://research.googleblog.com/2017/10/eager-execution-imperative-define-by.html https:
by mlboss 9y ago
Tensorflow Eager provides dynamic graph computation similar to PyTorch. https://research.googleblog.com/2017/10/eager-execution-imperative-define-by.html https://research.googleblog.com/2017/10/eager-execution-impe...
- cs702 9y agoYes. Yet in my experience PyTorch is much nicer to use. Its API feels very natural and easy to extend -- it feels very Pythonic. TensorFlow's API, on the other hand, seems to get in my way whenever I try to do anything new that isn't already built into one of its higher-level APIs (e.g., Keras). I frequently I find myself fighting with TensorFlow's API. For iterative R&D/exploratory work, I find I'm more productive -- and happier -- with PyTorch than TensorFlow.
- epberry 9y agoAgreed that pytorch feels “pythonic”. I think tensorflow doesn’t because it’s really a C++ API with an extensive set of wrappers and it shows. Pytorch feels like they started with python and added in the C extensions after the fact.
- amelius 9y agoTensorFlow requires the user to maintain a dataflow-graph, as if the user is writing a compiler, which IMHO is silly. It's the opposite of convenience. What TensorFlow should do instead: do dataflow-analysis, like any modern compiler, and figure out the dataflow-graphs at compile-time. OR... take PyTorch's approach and use dynamic graphs. I bet there's not even a significant performance penalty associated with dynamic graphs, as the tensors are usually quite large and consume most of the computation-time anyway. My point: why use a tool that's founded on a wrong design-decision?