TensorFlow2.0入门到进阶|TensorFlow2.0入门到进阶 —— 1.3一文读懂TensorFlow版本变迁与tf1.0架构


文章目录

  • TensorFlow1.0
    • 1.1XLA:Accelerate linear algebra
    • 1.2 更高级别API
    • 1.3支持docker镜像
      • Docker
      • TensorFlow Docker 要求
  • 2、tensorflow1.0架构
    • 高层封装

TensorFlow1.0 TensorFlow2.0入门到进阶|TensorFlow2.0入门到进阶 —— 1.3一文读懂TensorFlow版本变迁与tf1.0架构
文章图片

1.1XLA:Accelerate linear algebra TensorFlow 的设计目标和核心优势之一是其灵活性。TensorFlow 被设计成一个灵活和可扩展的系统,可用于定义任意数据流图(data flow graph)并使用异构计算设备(如 CPU 和 GPU)以分布式方式有效地执行它们。
但是灵活性通常与性能不能兼得。虽然 TensorFlow 旨在定义任何种类的数据流图,但是由于 TensorFlow 分别优化每个 运算/指令(op),所以使所有图都高效地执行是有挑战性的。当一个具有高效实现的运算存在,或者每个运算都是相对重量级的操作(heavyweight operation)时,一切都很好;否则,用户仍然可以从低级 op 中组合 op,但是这种组合不能保证以最有效的方式运行。
这就是我们开发了 XLA(Accelerated Linear Algebra/加速线性代数)的原因,它是一个用于 TensorFlow 的编译器。XLA 使用 JIT 编译技术来分析用户在运行时(runtime)创建的 TensorFlow 图,专门用于实际运行时的维度和类型,它将多个 op 融合在一起并为它们形成高效的本地机器代码——能用于 CPU、GPU 和自定义加速器(例如谷歌的 TPU)。
1.2 更高级别API 关于高级别的API,这里只是简单知道一下概念就ok,后续的博客将具体介绍。
  • tf.layers
    tf.layers中分为类和函数,我们这里主要讲函数,因为类和函数的用法大同小异。
Input(…): 用于实例化一个输入 Tensor,作为神经网络的输入。 average_pooling1d(…): 一维平均池化层
average_pooling2d(…): 二维平均池化层 average_pooling3d(…): 三维平均池化层
batch_normalization(…): 批量标准化层 conv1d(…): 一维卷积层 conv2d(…): 二维卷积层
conv2d_transpose(…): 二维反卷积层 conv3d(…): 三维卷积层 conv3d_transpose(…):
三维反卷积层 dense(…): 全连接层 dropout(…): Dropout层 flatten(…): Flatten层,即把一个
Tensor 展平 max_pooling1d(…): 一维最大池化层 max_pooling2d(…): 二维最大池化层
max_pooling3d(…): 三维最大池化层 separable_conv2d(…): 二维深度可分离卷积层
看上面这个函数,可以发现,这个模块主要覆盖的区域是全连接和卷积等等的基本操作。但是这些操作已经非常足够了。我们可以根据自己的需要,在可以使用这里的API的时候使用,来简化我们的代码。
  • tf.metrics
    Tensorflow内置的评估指标算子。
  • tf.losses
    用于计算各种损失函数
    官方文档:https://tensorflow.google.cn/api_docs/python/tf/keras/losses
  • tf.keras
    这是一个很方便上手的API,2.0版本对其进行进一步升级,后面会具体讲。
1.3支持docker镜像 通俗来说:部署服务更加简洁
Docker
Docker 使用容器创建虚拟环境,以便将 TensorFlow 安装结果与系统的其余部分隔离开来。TensorFlow 程序在此虚拟环境中运行,该环境能够与其主机共享资源(访问目录、使用 GPU、连接到互联网等)。我们会针对每个版本测试 TensorFlow Docker 映像。
Docker 是在 Linux 上启用 TensorFlow GPU 支持的最简单方法,因为只需在主机上安装 NVIDIA? GPU 驱动程序,而不必安装 NVIDIA? CUDA? 工具包。
TensorFlow Docker 要求
在本地主机上安装 Docker。
要在 Linux 上启用 GPU 支持,请安装 NVIDIA Docker 支持。
请通过 docker -v 检查 Docker 版本。对于 19.03 之前的版本,您需要使用 nvidia-docker2 和 --runtime=nvidia 标记;对于 19.03 及之后的版本,您将需要使用 nvidia-container-toolkit 软件包和 --gpus all 标记。这两个选项都记录在上面链接的网页上。
2、tensorflow1.0架构 【TensorFlow2.0入门到进阶|TensorFlow2.0入门到进阶 —— 1.3一文读懂TensorFlow版本变迁与tf1.0架构】TensorFlow2.0入门到进阶|TensorFlow2.0入门到进阶 —— 1.3一文读懂TensorFlow版本变迁与tf1.0架构
文章图片

高层封装
Keras Estimator datasets layers distrbution engine

    推荐阅读