Ten Reasons Why TensorFlow Sucks

TensorFlow is the most important machine learning framework on this earch so far, no doubt. But I believe, for most developers, TensorFlow is also one of the most hated frameworks so far in the world. I’ve been struggling with it for a while, and wanna share you with some of my thoughts:

  1. In TensorFlow, essentially you are trying to write a static typed program (Tensor) in a dynamic typed language (Python). This gives you endless runtime error of type mismatch.

  2. For TF users, Eager mode brings more troubles than solutions because of the weird hybrid. You could have the code running in eager mode perfectly and suddenly everything breaks when you add tf.function. Perhaps only Francois Chollet knows where is the boundary between eager mode and graph mode.

  3. For TF engineers, this confusing hyrid exponentially increased the number of bugs. They may as well just create a new TensorFlow and ditch the 1.x altogether.

  4. The documentations are self-contradictory everywhere. Some critial explanations are missing, some are still outdated implementations, And some are just purely irresponsible fools.

  5. The curse of Keras, low-level APIs and Estimator. If you don’t have a powerful community like JavaScript to make all alternatives perfect, you should just be opinionated and focus on one.

  6. Do you know Tor browser? Yes, the one used to visit dark webs. I guess TensorFlow learned from it by deeply hide the real error from the stack trace. Horray! TF bugs are just untraceable like Tor.

  7. Distributed training over multiple GPUs? Isn’t it an accomplished thing since 2017? Nope, TensorFlow is aimming for 2050 to provide you with a convienient distributed training API. Before that, let it all be experimental and incompatible with other code for a while.

  8. tf.data and TF Records sounds attractive? In fact, they are poisoned graph mode candies which could bring you infinite troubles. You have to spend hours to think about “creative” TensorFlow graph solution for some transformation that’s very simple in native Python (or in other word, PyTorch).

  9. The breaking changes in APIs and design invalidates most of the third-party tensorflow tutorials and articles before 2019.

  10. And last but not least, you hate TensorFlow but you still have to use it because you work on some production models and the existing workflow relies on TensorFlow much. Or maybe you are seduced by TF Lite, tfjs? Fuck Life.

Alright. Let’s get back to the work now.

Loading Likes...

Leave a Reply

Your email address will not be published.