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

在这里插入图片描述

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架构

在这里插入图片描述

高层封装

Keras
Estimator
datasets
layers
distrbution engine

你可能感兴趣的:(TensorFlow2.0入门到进阶 —— 1.3一文读懂TensorFlow版本变迁与tf1.0架构)