当前位置:   article > 正文

Tensorflow知识概念与版本变迁简介

Tensorflow知识概念与版本变迁简介

#在此注明:本篇博客只标注出关键概念,并未扩展阐述

1.1 Tensorflow是什么?

Google的开源软件库

采取数据流图,用于数值计算

支持多种平台—GPU,CPU,移动设备

最初用于深度学习,变得越来越通用

1.1.1 数据流图

节点—处理数据

线—节点间的输入输出关系

线上运输张量tensor,即:所有n维数据

节点被分配到各种计算设备上运行

1.1.2 特性

高度灵活性

真正的可移植性

产品和科研结合

自动求微分

多语言支持

性能最优化

1.2 Tensorflow版本变迁

1.2.1 Tensorflow1.0—主要特性

XLA—Accelerate Linear Algebra 底层

       提升训练速度58倍

       可以在移动设备运行

引入更高级别的API—tf.layers/tf.metrics/tf.losses/tf.keras

Tensorflow调试器

支持docker镜像,引入Tensorflow serving服务

1.2.2 Tensorflow2.0—主要特性

使用tf.keras和eager mode进行更加简单的模型构建:主推这两个feature

鲁棒的跨平台模型部署

强大的研究实验

清除不推荐使用的API和减少重复来简化API

Tensorflow2.0—简化的模型开发流程

使用tf.data加载数据

使用tf.keras构建模型,也可以使用premade estimator来验证模型

              使用Tensorflow hub进行迁移学习

使用eager mode进行运行和调试

使用分发策略来进行分布式训练

导出到SavedModel

使用Tensorflow Serve、Tensorflow Lite、Tensorflow.js部署模型

Tensorflow2.0—强大的跨平台能力

       Tensorflow服务

              直接通过HTTP/REST或GRPC/协议缓冲区

       Tensorflow Lite—可部署在Android、IOS和嵌入式系统上

       Tensorflow.js—在javascript中部署模型

       其他语言—C、java、Go、C#、Rust、Julia、R等

Tensorflow2.0—强大的研究实验

       Keras功能API和子类API,允许构建复杂的拓扑结构

       自定义训练逻辑,使用tf.GradientTape和tf.custom_gradient进行更细粒度的控制

       低层API自始至终可以与高层结合使用,完全的可定制

       高级扩展:Ragged Tensors、Tensor2Tensor等。

1.3 Tensorflow vs PyTorch

  1. #1+1/2+1/2~2+1/2~3+.....+1/2~50
  2. #Tensorflow1.0
  3. import tensorflow as tf
  4. print(tf.__version__)
  5. x = tf.Variable(0.)
  6. y = tf.Variable(1.)
  7. print(x)
  8. print(y)
  9. add_op = x.assign(x+y)
  10. div_op = y.assign(y/2)
  11. with tf.Session() as sess:
  12. sess.run(tf.global_variables_initializer())
  13. for iteration in range(50):
  14. sess.run(add_op)
  15. sess.run(div_op)
  16. print(x.eval())
  17. #Pytorch
  18. import torch
  19. Print(torch.__version__)
  20. x = torch.Tensor([0.])
  21. y = torch.Tensor([1.])
  22. for iteration in range(50):
  23. x = x+y
  24. y = y/2
  25. print(x)
  26. #Tensorflow2.0
  27. import tensorflow as tf
  28. #tf.enable_eager_execution()
  29. print(tf.__version__) #1.13.1
  30. X = tf.constant(0.)
  31. y = tf.constant(1.)
  32. for iteration in range(50):
  33. x = x+y
  34. y = y/2
  35. print(x.numpy())
  36. #python
  37. x = 0
  38. y = 1
  39. for iteration in range(50):
  40. x = x+y
  41. y = y/2
  42. print(x)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/53445
推荐阅读
相关标签
  

闽ICP备14008679号