【开发】TensorFlow2.0新特性

上周在Sunnyvale举办的TensorFlow开发峰会上,Google发布了最新一版的TensorFlow: 2.0 Alpha版本。

它较原先的1.x版本有什么改进呢?我们知道作为一个算法研究工具,tensorflow相较于同类型产品,编码是较为复杂的,需要引入额外的“搭建阶段(Construction Phase)”来创建视图,创建会话,初始化变量等等。同样是一段计算一串等比数列(1,1/2,1/4...)前50项之和,PyTorch的代码只有区区几行:
【开发】TensorFlow2.0新特性_第1张图片
而在Tensorflow则要经历环境和执行阶段的构建工作。
【开发】TensorFlow2.0新特性_第2张图片
结构的复杂性同时会延长前期入门人员的学习曲线及增大后期Debug的排障难度。而在TensorFlow2.0中,产品组从用户角度出发,简化了流程,不再需要建立用户会话,与Python语言更加融合,并统一了API的调用接口。
举个例子,原来我们要计算两个数乘积的平方根,需要定义视图,创建会话,设定变量。
【开发】TensorFlow2.0新特性_第3张图片
在TensorFlow2.0中,系统省去了建立会话的麻烦。
【开发】TensorFlow2.0新特性_第4张图片
嗯,快速执行(Eager Execution)看似简化了编码的工作,那效率怎样呢?会比通过用户会话层交互更快么?经过TF团队大量案例的测试,答案是“几乎一样快”。我们知道视图是建立在会话之上的,但是通过优化视图,使其在接收大量训练数据的时候仍能保持较高的响应速度。这里我们可以将一系列算法定义为一个全局函数,以提高处理大量数据的效率。
【开发】TensorFlow2.0新特性_第5张图片
在TensorFlow建立一个真正的数学模型时,我们知道以往可以通过tf.slim,tf.layers,Keras或者从原始算法开始做复合编译。TF2.0整合了之前复杂的函数接口,统一了原本形形色色的编译语言。若要支持上文提到的快速部署,API必须满足Keras接口标准。在早期需要动辄上百行的模型代码,现在也只要了了是几行就可实现,甚至比PyTorch还要精炼。
【开发】TensorFlow2.0新特性_第6张图片
此外,TF2.0还支持与TensorBoard的调用交互。
【开发】TensorFlow2.0新特性_第7张图片
这样我们在TensorBoard里可以直观看到即时的模型训练情况,适时地调整预期,查看偏移曲线。
【开发】TensorFlow2.0新特性_第8张图片
对于任何一款工具的大版本变动,原先的开发人员必定需要花时间重新熟悉和了解,对于新人来说,拿TF2.0作为起步工具势必直接可以得到事半功倍的效果。
关注公众号“达摩院首座”,一起开源一起嗨!

你可能感兴趣的:(【开发】TensorFlow2.0新特性)