Tensorflow2.0 🍎🍊 is delicious, just eat it! 😋😋

pushedAt 2 weeks ago


How to eat TensorFlow2 in 30 days ?🔥🔥

Click here for Chinese Version(中文版)





1. TensorFlow2 🍎 or Pytorch🔥

Conclusion first:

For the engineers, priority goes to TensorFlow2.

For the students and researchers,first choice should be Pytorch.

The best way is to master both of them if having sufficient time.


    1. Model implementation is the most important in the industry. Deployment supporting tensorflow models (not Pytorch) exclusively is the present situation in the majority of the Internet enterprises in China. What's more, the industry prefers the models with higher availability; in most cases, they use well-validated modeling architectures with the minimized requirements of adjustment.
    1. Fast iterative development and publication is the most important for the researchers since they need to test a lot of new models. Pytorch has advantages in accessing and debugging comparing with TensorFlow2. Pytorch is most frequently used in academy since 2019 with a large amount of the cutting-edge results.
    1. Overall, TensorFlow2 and Pytorch are quite similar in programming nowadays, so mastering one helps learning the other. Mastering both framework provides you a lot more open-sourced models and helps you switching between them.

2. Keras🍏 and tf.keras 🍎

Conclusion first:

Keras will be discontinued in development after version 2.3.0, so use tf.keras.

Keras is a high-level API for the deep learning frameworks. It help the users to define and training DL networks with a more intuitive way.

The Keras libraries installed by pip implement this high-level API for the backends in tensorflow, theano, CNTK, etc.

tf.keras is the high-level API just for Tensorflow, which is based on low-level APIs in Tensorflow.

Most but not all of the functions in tf.keras are the same for those in Keras (which is compatible to many kinds of backend). tf.keras has a tighter combination to TensorFlow comparing to Keras.

With the acquisition by Google, Keras will not update after version 2.3.0 , thus the users should use tf.keras from now on, instead of using Keras installed by pip.

3. What Should You Know Before Reading This Book 📖?

It is suggested that the readers have foundamental knowledges of machine/deep learning and experience of modeling using Keras or TensorFlow 1.0.

For those who have zero experience of machine/deep learning, it is strongly suggested to refer to "Deep Learning with Python" along with reading this book.

"Deep Learning with Python" is written by François Chollet, the inventor of Keras. This book is based on Keras and has no machine learning related prerequisites to the reader.

"Deep Learning with Python" is easy to understand as it uses various examples to demonstrate. No mathematical equation is in this book since it focuses on cultivating the intuitive to the deep learning.

4. Writing Style 🍉 of This Book

This is a introduction reference book which is extremely friendly to human being. The lowest goal of the authors is to avoid giving up due to the difficulties, while "Don't let the readers think" is the highest target.

This book is mainly based on the official documents of TensorFlow together with its functions.

However, the authors made a thorough restructuring and a lot optimizations on the demonstrations.

It is different from the official documents, which is disordered and contains both tutorial and guidance with lack of systematic logic, that our book redesigns the content according to the difficulties, readers' searching habits, and the architecture of TensorFlow. We now make it progressive for TensorFlow studying with a clear path, and an easy access to the corresponding examples.

In contrast to the verbose demonstrating code, the authors of this book try to minimize the length of the examples to make it easy for reading and implementation. What's more, most of the code cells can be used in your project instantaneously.

Given the level of difficulty as 9 for learning Tensorflow through official documents, it would be reduced to 3 if learning through this book.

This difference in difficulties could be demonstrated as the following figure:

5. How to Learn With This Book ⏰

(1) Study Plan

The authors wrote this book using the spare time, especially the two-month unexpected "holiday" of COVID-19. Most readers should be able to completely master all the content within 30 days.

Time required everyday would be between 30 minutes to 2 hours.

This book could also be used as library examples to consult when implementing machine learning projects with TensorFlow2.

Click the blue captions to enter the corresponding chapter.

Date Contents Difficulties Est. Time Update Status
  Chapter 1: Modeling Procedure of TensorFlow ⭐️ 0hour
Day 1 1-1 Example: Modeling Procedure for Structured Data ⭐️⭐️⭐️ 1hour
Day 2 1-2 Example: Modeling Procedure for Images ⭐️⭐️⭐️⭐️ 2hours
Day 3 1-3 Example: Modeling Procedure for Texts ⭐️⭐️⭐️⭐️⭐️ 2hours
Day 4 1-4 Example: Modeling Procedure for Temporal Sequences ⭐️⭐️⭐️⭐️⭐️ 2hours
  Chapter 2: Key Concepts of TensorFlow ⭐️ 0hour
Day 5 2-1 Data Structure of Tensor ⭐️⭐️⭐️⭐️ 1hour
Day 6 2-2 Three Types of Graph ⭐️⭐️⭐️⭐️⭐️ 2hours
Day 7 2-3 Automatic Differentiate ⭐️⭐️⭐️ 1hour
  Chapter 3: Hierarchy of TensorFlow ⭐️ 0hour
Day 8 3-1 Low-level API: Demonstration ⭐️⭐️⭐️⭐️ 1hour
Day 9 3-2 Mid-level API: Demonstration ⭐️⭐️⭐️ 1hour
Day 10 3-3 High-level API: Demonstration ⭐️⭐️⭐️ 1hour
  Chapter 4: Low-level API in TensorFlow ⭐️ 0hour
Day 11 4-1 Structural Operations of the Tensor ⭐️⭐️⭐️⭐️⭐️ 2hours
Day 12 4-2 Mathematical Operations of the Tensor ⭐️⭐️⭐️⭐️ 1hour
Day 13 4-3 Rules of Using the AutoGraph ⭐️⭐️⭐️ 0.5hour
Day 14 4-4 Mechanisms of the AutoGraph ⭐️⭐️⭐️⭐️⭐️ 2hours
Day 15 4-5 AutoGraph and tf.Module ⭐️⭐️⭐️⭐️ 1hour
  Chapter 5: Mid-level API in TensorFlow ⭐️ 0hour
Day 16 5-1 Dataset ⭐️⭐️⭐️⭐️⭐️ 2hours
Day 17 5-2 feature_column ⭐️⭐️⭐️⭐️ 1hour
Day 18 5-3 activation ⭐️⭐️⭐️ 0.5hour
Day 19 5-4 layers ⭐️⭐️⭐️ 1hour
Day 20 5-5 losses ⭐️⭐️⭐️ 1hour
Day 21 5-6 metrics ⭐️⭐️⭐️ 1hour
Day 22 5-7 optimizers ⭐️⭐️⭐️ 0.5hour
Day 23 5-8 callbacks ⭐️⭐️⭐️⭐️ 1hour
  Chapter 6: High-level API in TensorFlow ⭐️ 0hour
Day 24 6-1 Three Ways of Modeling ⭐️⭐️⭐️ 1hour
Day 25 6-2 Three Ways of Training ⭐️⭐️⭐️⭐️ 1hour
Day 26 6-3 Model Training Using Single GPU ⭐️⭐️ 0.5hour
Day 27 6-4 Model Training Using Multiple GPUs ⭐️⭐️ 0.5hour
Day 28 6-5 Model Training Using TPU ⭐️⭐️ 0.5hour
Day 29 6-6 Model Deploying Using tensorflow-serving ⭐️⭐️⭐️⭐️ 1hour
Day 30 6-7 Call Tensorflow Model Using spark-scala ⭐️⭐️⭐️⭐️⭐️ 2hours
  Epilogue: A Story Between a Foodie and Cuisine ⭐️ 0hour

(2) Software environment for studying

All the source codes are tested in jupyter. It is suggested to clone the repository to local machine and run them in jupyter for an interactive learning experience.

The authors would suggest to install jupytext that converts markdown files into ipynb, so the readers would be able to open markdown files in jupyter directly.

#For the readers in mainland China, using gitee will allow cloning with a faster speed
#!git clone https://gitee.com/Python_Ai_Road/eat_tensorflow2_in_30_days

#It is suggested to install jupytext that converts and run markdown files as ipynb.
#!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U jupytext
#It is also suggested to install the latest version of TensorFlow to test the demonstrating code in this book
#!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  -U tensorflow
import tensorflow as tf

#Note: all the codes are tested under TensorFlow 2.1
tf.print("tensorflow version:",tf.__version__)

a = tf.constant("hello")
b = tf.constant("tensorflow2")
c = tf.strings.join([a,b]," ")
tensorflow version: 2.1.0
hello tensorflow2

6. Contact and support the author 🎈🎈

If you find this book helpful and want to support the author, please give a star ⭐️ to this repository and don't forget to share it to your friends 😊

Please leave comments in the WeChat official account "算法美食屋" (Machine Learning cook house) if you want to communicate with the author about the content. The author will try best to reply given the limited time available.


30天吃掉那只 TensorFlow2

📚 gitbook电子书地址: https://lyhue1991.github.io/eat_tensorflow2_in_30_days

🚀 github项目地址:https://github.com/lyhue1991/eat_tensorflow2_in_30_days

🐳 kesci专栏地址:https://www.kesci.com/home/column/5d8ef3c3037db3002d3aa3a0


一,TensorFlow2 🍎 or Pytorch🔥






  • 1,在工业界最重要的是模型落地,目前国内的大部分互联网企业只支持TensorFlow模型的在线部署,不支持Pytorch。 并且工业界更加注重的是模型的高可用性,许多时候使用的都是成熟的模型架构,调试需求并不大。

  • 2,研究人员最重要的是快速迭代发表文章,需要尝试一些较新的模型架构。而Pytorch在易用性上相比TensorFlow2有一些优势,更加方便调试。 并且在2019年以来在学术界占领了大半壁江山,能够找到的相应最新研究成果更多。

  • 3,TensorFlow2和Pytorch实际上整体风格已经非常相似了,学会了其中一个,学习另外一个将比较容易。两种框架都掌握的话,能够参考的开源模型案例更多,并且可以方便地在两种框架之间切换。

二,Keras🍏 and tf.keras 🍎








三,本书📖面向读者 👼



《Python深度学习》这本书是Keras之父Francois Chollet所著,该书假定读者无任何机器学习知识,以Keras为工具,


四,本书写作风格 🍉

本书是一本对人类用户极其友善的TensorFlow2.0入门工具书,不刻意恶心读者是本书的底限要求,Don't let me think是本书的最高追求。








五,本书学习方案 ⏰






日期 学习内容 内容难度 预计学习时间 更新状态
  一、TensorFlow的建模流程 ⭐️ 0hour
day1 1-1,结构化数据建模流程范例 ⭐️⭐️⭐️ 1hour
day2 1-2,图片数据建模流程范例 ⭐️⭐️⭐️⭐️ 2hour
day3 1-3,文本数据建模流程范例 ⭐️⭐️⭐️⭐️⭐️ 2hour
day4 1-4,时间序列数据建模流程范例 ⭐️⭐️⭐️⭐️⭐️ 2hour
  二、TensorFlow的核心概念 ⭐️ 0hour
day5 2-1,张量数据结构 ⭐️⭐️⭐️⭐️ 1hour
day6 2-2,三种计算图 ⭐️⭐️⭐️⭐️⭐️ 2hour
day7 2-3,自动微分机制 ⭐️⭐️⭐️ 1hour
  三、TensorFlow的层次结构 ⭐️ 0hour
day8 3-1,低阶API示范 ⭐️⭐️⭐️⭐️ 1hour
day9 3-2,中阶API示范 ⭐️⭐️⭐️ 1hour
day10 3-3,高阶API示范 ⭐️⭐️⭐️ 1hour
  四、TensorFlow的低阶API ⭐️ 0hour
day11 4-1,张量的结构操作 ⭐️⭐️⭐️⭐️⭐️ 2hour
day12 4-2,张量的数学运算 ⭐️⭐️⭐️⭐️ 1hour
day13 4-3,AutoGraph的使用规范 ⭐️⭐️⭐️ 0.5hour
day14 4-4,AutoGraph的机制原理 ⭐️⭐️⭐️⭐️⭐️ 2hour
day15 4-5,AutoGraph和tf.Module ⭐️⭐️⭐️⭐️ 1hour
  五、TensorFlow的中阶API ⭐️ 0hour
day16 5-1,数据管道Dataset ⭐️⭐️⭐️⭐️⭐️ 2hour
day17 5-2,特征列feature_column ⭐️⭐️⭐️⭐️ 1hour
day18 5-3,激活函数activation ⭐️⭐️⭐️ 0.5hour
day19 5-4,模型层layers ⭐️⭐️⭐️ 1hour
day20 5-5,损失函数losses ⭐️⭐️⭐️ 1hour
day21 5-6,评估指标metrics ⭐️⭐️⭐️ 1hour
day22 5-7,优化器optimizers ⭐️⭐️⭐️ 0.5hour
day23 5-8,回调函数callbacks ⭐️⭐️⭐️⭐️ 1hour
  六、TensorFlow的高阶API ⭐️ 0hour
day24 6-1,构建模型的3种方法 ⭐️⭐️⭐️ 1hour
day25 6-2,训练模型的3种方法 ⭐️⭐️⭐️⭐️ 1hour
day26 6-3,使用单GPU训练模型 ⭐️⭐️ 0.5hour
day27 6-4,使用多GPU训练模型 ⭐️⭐️ 0.5hour
day28 6-5,使用TPU训练模型 ⭐️⭐️ 0.5hour
day29 6-6,使用tensorflow-serving部署模型 ⭐️⭐️⭐️⭐️ 1hour
day30 6-7,使用spark-scala调用tensorflow模型 ⭐️⭐️⭐️⭐️⭐️ 2hour
  后记:一个吃货和一道菜的故事 ⭐️ 0hour






#!git clone https://gitee.com/Python_Ai_Road/eat_tensorflow2_in_30_days

#建议在jupyter notebook 上安装jupytext,以便能够将本书各章节markdown文件视作ipynb文件运行
#!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U jupytext
#建议在jupyter notebook 上安装最新版本tensorflow 测试本书中的代码
#!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  -U tensorflow
import tensorflow as tf

#注:本书全部代码在tensorflow 2.1版本测试通过
tf.print("tensorflow version:",tf.__version__)

a = tf.constant("hello")
b = tf.constant("tensorflow2")
c = tf.strings.join([a,b]," ")
tensorflow version: 2.1.0
hello tensorflow2

六,鼓励和联系作者 🎈🎈