提交 b7122430 编写于 作者: W wizardforcel

2020-12-20 00:15:34

上级 46741d1f
......@@ -188,6 +188,6 @@ RL 周围有各种改进和进步。 现在,您已经阅读完本书,可以
您可以进一步参考以下论文:
* [**I2A 论文**](https://arxiv.org/pdf/1707.06203.pdf)
* 人类喜好的论文的 **DRL: [https://arxiv.org/pdf/1706.03741.pdf](https://arxiv.org/pdf/1706.03741.pdf)**
* [**来自人类喜好的 DRL 论文**](https://arxiv.org/pdf/1706.03741.pdf)
* [**HER 论文**](https://arxiv.org/pdf/1707.01495.pdf)
* [**AI 安全性的辩论**](https://arxiv.org/pdf/1805.00899.pdf)
\ No newline at end of file
......@@ -17,7 +17,7 @@
* Python 3.4+(目前,TensorFlow 支持的最高 Python 版本是 3.6)
* NumPy(如果不是由 TensorFlow 自动安装)
可在 [https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/tree/master/Chapter02](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/tree/master/Chapter02) 中获得本章的代码文件。
可在[这个页面](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/tree/master/Chapter02)中获得本章的代码文件。
# TF 2.0 中的新抽象
......@@ -120,7 +120,7 @@ def get_layers(n):
n -= 1
```
如果您不熟悉 Python 生成器,请在继续操作之前参阅 [https://realpython.com/introduction-to-python-generators/](https://realpython.com/introduction-to-python-generators/)
如果您不熟悉 Python 生成器,请在继续操作之前参阅[这里](https://realpython.com/introduction-to-python-generators/)
前一个代码块中定义的函数接受`n`的正整数值并返回`generator`对象。 此生成器生成的每个元素都是一个图层。 以下代码段显示了如何使用此函数创建模型:
......@@ -341,7 +341,7 @@ loaded_model = tf.keras.models.load_model(
* `mnist`:MNIST 手写数字数据集
* `reuters`:路透社主题分类数据集
列出的每个数据集都是一个 Python 模块。 可在 [https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/datasets](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/datasets) 中找到其组件的详细列表。
列出的每个数据集都是一个 Python 模块。 可在[这个页面](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/datasets)中找到其组件的详细列表。
# 端到端顺序示例
......@@ -392,7 +392,7 @@ TensorFlow 团队尝试通过引入 Estimators 来解决此问题,Estimators
* 为 TensorBoard 保存摘要
* 使用 Estimators 编写应用程序时,程序员可以灵活地将数据输入管道与模型分开。 通过这种分离,可以轻松地尝试使用不同的数据集和不同的数据源。
在 TF 2.0 中,Keras 已经提供了 Estimators 公开的许多功能。 如果您只是入门,那么 Keras 是一个更容易学习的 API。 建议初学者在评估器上使用 Keras API。 一旦用例需要使用 Estimators,就可以查找并了解更多信息。 有关详细指南,请访问[https://www.tensorflow.org/guide/estimators](https://www.tensorflow.org/guide/estimators)
在 TF 2.0 中,Keras 已经提供了 Estimators 公开的许多功能。 如果您只是入门,那么 Keras 是一个更容易学习的 API。 建议初学者在评估器上使用 Keras API。 一旦用例需要使用 Estimators,就可以查找并了解更多信息。 有关详细指南,请访问[这里](https://www.tensorflow.org/guide/estimators)
# 评估 TensorFlow 图
......
......@@ -6,7 +6,7 @@
您应该了解标准数据格式,例如 CSV 文件,图像(PNG 和 JPG)和 ASCII 文本格式。 不用说,本书的大多数章节都假定您了解基本的机器学习概念,Python 编程,`numpy` Python 模块,并且您已使用 TensorFlow 创建了一些机器学习模型。 尽管不是必需的,但熟悉 **TensorFlow 1.x****TF 1.x** )版本的`tf.data` API 会有所帮助。 即使您没有`tf.data` API 的先验知识,您也应该发现本章可以自学以了解它们。
本章中的某些主题需要 Python 模块,例如`argparse``tqdm`,这些模块已在本书的 GitHub 存储库中列出。 可在 [https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/tree/master/Chapter03](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/tree/master/Chapter03) 中获得本章的代码。
本章中的某些主题需要 Python 模块,例如`argparse``tqdm`,这些模块已在本书的 GitHub 存储库中列出。 可在[这个页面](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/tree/master/Chapter03)中获得本章的代码。
# 设计和构建数据管道
......@@ -37,11 +37,11 @@ TFRecords 的创建是输入数据管道的核心,因此您可以创建`tf.dat
`TFRecords`有四个重要组成部分:
* `TFRecord`格式,用于存储二进制记录或数据序列。
* 协议缓冲区( [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)是跨平台的,并且具有跨语言库,用于以协议消息的形式对结构化数据进行有效的序列化。
* [协议缓冲区](https://developers.google.com/protocol-buffers/)是跨平台的,并且具有跨语言库,用于以协议消息的形式对结构化数据进行有效的序列化。
* 协议消息是信息的小型逻辑记录,其中包含一系列名称/值对。
* `tf.Example`是一种灵活的协议消息(也称为`protobuf`),旨在与 TensorFlow 一起使用。 **TensorFlow Extended****TFX** )是 TF 2.0 中的另一个重要功能,用于部署生产级 ML 管道,我们将在[第 5 章](5.html)中进行学习,[ *模型推理管道–多平台部署*。
请注意,在 TF 2.0 中,`tf.Examples`已在诸如 TFX( [https](https://www.tensorflow.org/tfx/) [://](https://www.tensorflow.org/tfx/) [www](https://www.tensorflow.org/tfx/) [)的所有高级 API 中使用。](https://www.tensorflow.org/tfx/) [张量流](https://www.tensorflow.org/tfx/) [](https://www.tensorflow.org/tfx/) [org](https://www.tensorflow.org/tfx/) [/](https://www.tensorflow.org/tfx/) [tfx](https://www.tensorflow.org/tfx/) [/](https://www.tensorflow.org/tfx/) )
请注意,在 TF 2.0 中,`tf.Examples`已在诸如 [TFX](https://www.tensorflow.org/tfx/) 的所有 TensorFlow 高级 API 中使用。
现在,让我们看看如何将数据存储在`TFRecords`中。 如前所述,任何转换为​​`TFRecords`格式的数据都存储为二进制字符串序列。 您可能会猜到,必须先指定数据结构,然后才能从`tfrecord`文件读取或写入数据。 为了读取和写入`tfrecords`文件,我们需要使用`tf.Example`协议消息。 请注意,数据中包含的每条小信息都必须使用`Etf.Example`进行存储。 此外,为了将信息写入磁盘,使用了`tf.io.TFRecordWriter`。 要从磁盘读回信息,您可以使用`tf.io.TFRecordReader`
......@@ -145,7 +145,7 @@ dataset = tf.data.TFRecordDataset(tfrecords_file_names)
* `tf.data.Dataset.from_tensors()`
* `tf.data.Dataset.from_tensor_slices()`
您可以在 [https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_tensors.ipynb ...](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_tensors.ipynb) 中查看示例代码。
您可以在[这个页面](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_tensors.ipynb)中查看示例代码。
# 不使用 TFRecords 直接使用其他格式创建数据集
......@@ -153,7 +153,7 @@ dataset = tf.data.TFRecordDataset(tfrecords_file_names)
* 使用 CSV 文件:
您可以使用`td.data.experimental.make_csv_dataset(...)` API 查找`.csv`文件。 您可以如下定义`.csv`文件和`batch_size`中可用的列。 完整的代码可以在 [https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_csv.ipynb](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_csv.ipynb) 中找到:
您可以使用`td.data.experimental.make_csv_dataset(...)` API 查找`.csv`文件。 您可以如下定义`.csv`文件和`batch_size`中可用的列。 完整的代码可以在[这个页面](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_csv.ipynb)中找到:
```py
csv_file = "./curated_data/train.csv"
......@@ -165,7 +165,7 @@ dataset = tf.data.experimental.make_csv_dataset(csv_file, column_names=csv_colum
* 使用文本数据:
`tf.data.TextLineDataset(...)` API 旨在从文本文件创建数据集。 这主要用于文本数据,其中每一行包含一个数据样本。 一些示例包括日志消息,问题答案等。 我们将使用与上一节相同的示例向您展示如何使用文本数据创建`tf.data.Dataset` *。* 完整代码可在 [https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_text.ipynb](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_text.ipynb) 中找到:
`tf.data.TextLineDataset(...)` API 旨在从文本文件创建数据集。 这主要用于文本数据,其中每一行包含一个数据样本。 一些示例包括日志消息,问题答案等。 我们将使用与上一节相同的示例向您展示如何使用文本数据创建`tf.data.Dataset`。 完整代码可在[这个页面](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_text.ipynb)中找到:
```py
def train_decode_line(row): cols = tf.io.decode_csv(row, record_defaults=[[0.], ['house'], [0.]]) myfeatures = {'sq_footage':cols[0], 'type':cols[1]} mylabel = cols[2] #price
......@@ -186,7 +186,7 @@ train_dataset = line_dataset.map(train_decode_line)
最常见的输入数据管道之一是图像,可以是.jpeg 或.png 格式。 您的数据集中可能有成千上万的图像。 由于硬件内存(CPU 内存或 GPU 内存)的限制,我们无法将所有图像存储到内存中。 `tf.data.Dataset`提供了构建此管道的有效方法。
在以下示例中,我们有几个`.jpeg` / `.jpg`文件,我们将使用它们全部创建`tf.data.Dataset` *。* 您可以在 [https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_images.ipynb](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_images.ipynb) 中找到更多详细信息:
在以下示例中,我们有几个`.jpeg`/`.jpg`文件,我们将使用它们全部创建`tf.data.Dataset`。 您可以在[这个页面](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/datasets/create_dataset_from_images.ipynb)中找到更多详细信息:
```py
# Get images files
......@@ -404,7 +404,7 @@ TF 2.0 中创建输入数据管道的一个主要区别在于其简单性。 TF
到目前为止,我们已经介绍了数据集对象的创建以及如何创建批量数据以馈入模型。 在本节中,我们将看一个端到端输入数据管道和模型训练的示例。 我们将使用 CIFAR10 数据构建图像分类器。
为了运行基于 CIFAR10 的端到端示例,您需要从 [https://www.cs.toronto.edu/~kriz/cifar.html](https://www.cs.toronto.edu/~kriz/cifar.html) 下载必要的数据。 该数据集摘自 Alex Krizhevsky,2009 年( [https://www.cs.toronto.edu/~kriz/learning-,名为*,从微小图像中学习多层特征* features-2009-TR.pdf](https://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf)。 该数据集包含以下信息:
为了运行基于 CIFAR10 的端到端示例,您需要从[这里](https://www.cs.toronto.edu/~kriz/cifar.html)下载必要的数据。 该数据集摘自[《从微小图像中学习多层特征》](https://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf)。 该数据集包含以下信息:
* 50,000 张带有标签的图像进行培训
* 10,000 张带有标签的图像进行测试
......@@ -421,7 +421,7 @@ TF 2.0 中创建输入数据管道的一个主要区别在于其简单性。 TF
* `data_batch_5`
* `test_batch`
`data_batch_*`文件包含训练数据,而`test_batch`文件包含测试数据。 这些文件为 Python `pickle`格式。 在此端到端示例中,我们将从 pickle 文件中创建`tfrecords`。 完整的代码文件以及`README.md`文件可在本书的 GitHub 存储库中找到,两者均可在 [https://github.com/PacktPublishing/What-s-New-in-TensorFlow-中找到 2.0 / blob / master / Chapter03 / cifar10 / README.md](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/cifar10/README.md)
`data_batch_*`文件包含训练数据,而`test_batch`文件包含测试数据。 这些文件为 Python `pickle`格式。 在此端到端示例中,我们将从 pickle 文件中创建`tfrecords`。 完整的代码文件以及`README.md`文件可在本书的 GitHub 存储库中找到,两者均可在[这里](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/blob/master/Chapter03/cifar10/README.md)找到
# 使用泡菜文件创建 tfrecords
......@@ -486,4 +486,4 @@ import tensorflow_datasets as tfdstfds.list_builders()
# 进一步阅读
尽管本章试图捕获有关如何构建输入数据管道的最新信息,但 TensorFlow 是一个快速变化的平台。 开发人员每天都在增加新功能。 社区中还有成千上万的开源贡献者,他们正在迅速添加功能。 强烈建议尽可能参考 [https://www.tensorflow.org](https://www.tensorflow.org) ,以了解正确的 API 使用和/或更改。
\ No newline at end of file
尽管本章试图捕获有关如何构建输入数据管道的最新信息,但 TensorFlow 是一个快速变化的平台。 开发人员每天都在增加新功能。 社区中还有成千上万的开源贡献者,他们正在迅速添加功能。 强烈建议尽可能参考[这里](https://www.tensorflow.org),以了解正确的 API 使用和/或更改。
\ No newline at end of file
......@@ -119,7 +119,7 @@ model.add(tf.keras.layers.Dense(units=num_classes,
activation='softmax'))
```
请注意,使用`tf.keras.layers`代替`tf.layers`。 TensorFlow 2.0 明确建议使用`tf.keras.layers`。 使用`tf.keras.layers`,您可以指定权重,偏差,初始值设定项和正则化项。 使用`tf.layers``tf.keras.layers`时,权重初始化的方式以及获得确切的 API 定义的方式可能会有一些差异。 建议在各个部分中查看 [https://www.tensorflow.org/](https://www.tensorflow.org/)
请注意,使用`tf.keras.layers`代替`tf.layers`。 TensorFlow 2.0 明确建议使用`tf.keras.layers`。 使用`tf.keras.layers`,您可以指定权重,偏差,初始值设定项和正则化项。 使用`tf.layers``tf.keras.layers`时,权重初始化的方式以及获得确切的 API 定义的方式可能会有一些差异。 [建议在各个部分中查看](https://www.tensorflow.org/)
# 功能性 API
......@@ -408,7 +408,7 @@ def clip_gradient_by_norm(x, norm):
`tf.custom_gradient`装饰器的主要用途是允许在一系列操作的梯度上进行细粒度设置,并可用于创建一系列操作的更有效,更稳定的实现。
有关如何使用`tf.custom_gradient`的更多示例,请参见 [https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/custom_gradient。](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/custom_gradient)
有关如何使用`tf.custom_gradient`的更多示例,请参见[这里](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/custom_gradient)
# 分布式培训
......@@ -598,4 +598,4 @@ WIT 的某些功能是可以将具有相同工作流程的多个模型进行比
# 进一步阅读
鼓励用户阅读 [tensorflow.org](https://www.tensorflow.org/) 转移学习指南,该指南重用了预先训练的模型权重和变量,并将学习表示转移到另一个数据集,网址为 [https://www.tensorflow.org/ beta / tutorials / images / transfer_learning](https://www.tensorflow.org/beta/tutoriaimg/transfer_learning)
\ No newline at end of file
鼓励用户阅读[这里](https://www.tensorflow.org/)的迁移学习指南,该指南重用了预先训练的模型权重和变量,[并将学习表示迁移到另一个数据集](https://www.tensorflow.org/beta/tutoriaimg/transfer_learning)
\ No newline at end of file
......@@ -12,7 +12,7 @@
* Python 3.4+(当前,TensorFlow 支持的最高 Python 版本是 3.6)
* NumPy(如果不是由 TensorFlow 自动安装)
* Docker(请参阅[第 1 章](1.html)*TensorFlow 2.0 入门*,有关如何安装 Docker 的详细信息)
* curl( [https://curl.haxx.se/docs/install.html](https://curl.haxx.se/docs/install.html)
* [curl](https://curl.haxx.se/docs/install.html)
* 具有命令行界面的 Linux 计算机
本章中的每个 Python 代码段均假定已安装 TF 2.0,并且已将其导入到名称空间中。 这意味着在执行任何代码块之前,请先输入以下行:
......@@ -21,7 +21,7 @@
import tensorflow as tf
```
可在 [https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/tree/master/Chapter05](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/tree/master/Chapter05) 中获得本章的代码文件。
可在[这个页面](https://github.com/PacktPublishing/What-s-New-in-TensorFlow-2.0/tree/master/Chapter05)中获得本章的代码文件。
# 机器学习工作流程-推理阶段
......@@ -64,7 +64,7 @@ import tensorflow as tf
到目前为止,我们已经看到了如何从 Python 函数创建 TensorFlow 图形代码。 TF 2.0 将 Python-TensorFlow 耦合提升到了一个全新的水平。 新引入的 AutoGraph(`tf.autograph`)函数使用户可以使用本机 Python 语法编写图形代码。
当前,此功能仅支持 Python 语法的有限子集。 [https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/autograph/LIMITATIONS.md](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/autograph/LIMITATIONS.md) 中提供了当前支持的语法元素的详细列表。
当前,此功能仅支持 Python 语法的有限子集。 [这个页面](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/autograph/LIMITATIONS.md)中提供了当前支持的语法元素的详细列表。
这样做的主要优点是,它使开发人员可以编写直观的 Python 代码来完成特定任务,然后自动将其转换为高性能的 TensorFlow Graph 代码。 这意味着开发人员可以以直观的 Python 形式描述基本的编程语言结构(例如循环和条件),而不是 TensorFlow 等效形式,并且具有可比的性能。
......@@ -127,7 +127,7 @@ def compute_square(number):
```
到目前为止,我们已经成功实现了一个 TensorFlow 计算图,该图可以计算给定一维张量的平方。 现在唯一要做的就是以`SavedModel`格式将此图形导出到磁盘。 您可能还记得,`tf.saved_model`模块中提供了用于`SavedModel`的 API。 在阅读该模块的文档( [https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/saved_model](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/saved_model)时,我们发现`save`方法可能会有所帮助 给我们。 一个粗糙的边缘是`tf.saved_model.save`方法仅适用于`Trackable`类型的对象,而我们所拥有的是`tf.function()`对象(属于`Trackable`类型或其子类)。 为了克服这个问题,我们只需将代码包装在实现`Trackable`接口的类中:
到目前为止,我们已经成功实现了一个 TensorFlow 计算图,该图可以计算给定一维张量的平方。 现在唯一要做的就是以`SavedModel`格式将此图形导出到磁盘。 您可能还记得,`tf.saved_model`模块中提供了用于`SavedModel`的 API。 [在阅读该模块的文档](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/saved_model)时,我们发现`save`方法可能会有所帮助 给我们。 一个粗糙的边缘是`tf.saved_model.save`方法仅适用于`Trackable`类型的对象,而我们所拥有的是`tf.function()`对象(属于`Trackable`类型或其子类)。 为了克服这个问题,我们只需将代码包装在实现`Trackable`接口的类中:
```py
class Square(tf.Module):
......@@ -173,7 +173,7 @@ ls -ax ./square/1
`SavedModel` **命令行界面****CLI** )是非常方便的工具,可用于分析各种`SavedModel`实例并运行它们。 它在调试磁盘上的模型时非常有用,并且可以在不读取,编写或修改任何代码的情况下使用。 在本节中,我们将简要介绍如何安装此工具,使用它分析图的不同组件并运行计算图。
该工具与 TensorFlow 二进制文件捆绑在一起。 如果您通过从源代码构建 TensorFlow 来安装它,则必须单独安装它。 有关安装说明,请参见 [https://www.tensorflow.org/beta/guide/saved_model#details_of_the_savedmodel_command_line_interface](https://www.tensorflow.org/beta/guide/saved_model#details_of_the_savedmodel_command_line_interface)
该工具与 TensorFlow 二进制文件捆绑在一起。 如果您通过从源代码构建 TensorFlow 来安装它,则必须单独安装它。 有关安装说明,请参见[这里](https://www.tensorflow.org/beta/guide/saved_model#details_of_the_savedmodel_command_line_interface)
这里值得简要讨论的两个命令是`show``run`。 前者可用于列出 MetaGraph 信息,而后者可用于通过命令行在一组输入上执行图。 通过使用`-h`参数运行工具,可以在每个步骤中获取详细说明:
......@@ -200,7 +200,7 @@ The given SavedModel contains the following tag-sets:
serve
```
如前所述,使用标记集来标识元图。 在这里,我们可以看到只有一个名为`serve`的标签集。 我们可能还想看一下构成该元图的组成函数。 要查看构成此标签集的`SignatureDefs`(有关详细信息,请参阅 [https://www.tensorflow.org/tfx/serving/signature_defs](https://www.tensorflow.org/tfx/serving/signature_defs),您可以键入以下命令:
如前所述,使用标记集来标识元图。 在这里,我们可以看到只有一个名为`serve`的标签集。 我们可能还想看一下构成该元图的组成函数。 要查看构成此标签集的`SignatureDefs`(有关详细信息,请参阅 [这里](https://www.tensorflow.org/tfx/serving/signature_defs),您可以键入以下命令:
```py
saved_model_cli show \
......@@ -256,7 +256,7 @@ Result for output key output_0:
与 TensorFlow 平台的大多数其他组件一样,TensorFlow Serving 也可以通过多种方式安装。 这里推荐通过 Docker 镜像使用它,因为它相对简单。
如果容器映像对您不起作用,请在 [https://www.tensorflow.org/tfx/serving/setup](https://www.tensorflow.org/tfx/serving/setup) 上获取其他安装 TensorFlow Serving 方法的摘要。
如果容器映像对您不起作用,请在[这个页面](https://www.tensorflow.org/tfx/serving/setup)上获取其他安装 TensorFlow Serving 方法的摘要。
使用 Docker 设置 TensorFlow 服务涉及一个简单的步骤。 但是,此步骤需要将 Docker 安装在主机上。 有关设置 Docker 的说明,请参阅[第 1 章](1.html)*TensorFlow 2.0 入门*或本章的*技术要求*部分。 您需要做的就是拉相关的 Docker 映像以...
......@@ -298,8 +298,8 @@ curl -X POST \
现在我们已经看到了如何使用 TensorFlow Serving 在后端服务器上提供`SavedModel`。 可通过 gRPC 和 RESTful API 访问此模型。 有关这些的详细信息,请参见以下链接:
* [https://www.tensorflow.org/tfx/serving/api_rest](https://www.tensorflow.org/tfx/serving/api_rest)
* [https://github.com/tensorflow/serving/blob/master/tensorflow_serving/apis/prediction_service.proto](https://github.com/tensorflow/serving/blob/master/tensorflow_serving/apis/prediction_service.proto)
* <https://www.tensorflow.org/tfx/serving/api_rest>
* <https://github.com/tensorflow/serving/blob/master/tensorflow_serving/apis/prediction_service.proto>
请记住,每次调用`docker run`时,主机上都会启动一个新的 Docker 容器。 即使您已停止与该容器进行交互甚至关闭了“终端”窗口,该容器也可能会在后台继续刷新并运行。 这会导致大量的隐藏内存消耗。 需要有意识地停止容器。 为此,请执行以下步骤:
......@@ -325,7 +325,7 @@ docker stop <container-id>
# 当 TensorFlow.js 与 Node.js 相遇时
TensorFlow.js 的引入使在 JavaScript 环境中运行 TensorFlow 模型成为可能。 您可能已经知道,Node.js 是一个跨平台的运行时环境,可以在浏览器外部执行 JavaScript 代码。 这样就可以使用 JavaScript 代码编写后端服务。 将 Node.js 与 TensorFlow.js 集成在一起,就可以从 JavaScript 环境在后端服务器上提供机器学习服务。 请参阅 [https://www.tensorflow.org/js/tutorials/setup](https://www.tensorflow.org/js/tutorials/setup) 上有关如何执行此操作的文档。
TensorFlow.js 的引入使在 JavaScript 环境中运行 TensorFlow 模型成为可能。 您可能已经知道,Node.js 是一个跨平台的运行时环境,可以在浏览器外部执行 JavaScript 代码。 这样就可以使用 JavaScript 代码编写后端服务。 将 Node.js 与 TensorFlow.js 集成在一起,就可以从 JavaScript 环境在后端服务器上提供机器学习服务。 请参阅[这个页面](https://www.tensorflow.org/js/tutorials/setup)上有关如何执行此操作的文档。
# 浏览器中的推断
......@@ -338,15 +338,15 @@ TensorFlow.js 的引入使在 JavaScript 环境中运行 TensorFlow 模型成为
上图中描述的工作流说明了从头构建模型然后允许最终用户在其 Web 浏览器中运行它的端到端管道。 我们看到该过程分为两个主要阶段:训练和推理。 在训练阶段,数据科学家和其他机器学习从业者聚在一起,建立和训练模型。 现在,该模型以`SavedModel`格式导出。 但是,TensorFlow.js 尚不直接支持`SavedModel`格式。 因此,有必要将模型转换为 TensorFlow.js 支持的格式。
有关如何执行转换的详细信息,请参见 [https://www.tensorflow.org/js/tutorials/conversion/import_saved_model](https://www.tensorflow.org/js/tutorials/conversion/import_saved_model)
有关如何执行转换的详细信息,请参见[这里](https://www.tensorflow.org/js/tutorials/conversion/import_saved_model)
现在,通过任何其他 JavaScript 代码,都可以通过 Web 服务器将转换后的模型提供给用户。 用户为模型提供必要的输入。 TensorFlow.js 模型在用户浏览器中处理这些输入并返回适当的输出。
Detailed resources for getting started with TensorFlow.js are available at the following links:
* [https://www.tensorflow.org/js/guide](https://www.tensorflow.org/js/guide)
* [https://www.tensorflow.org/js/tutorials](https://www.tensorflow.org/js/tutorials)
* [https://www.tensorflow.org/js/demos](https://www.tensorflow.org/js/demos)
* <https://www.tensorflow.org/js/guide>
* <https://www.tensorflow.org/js/tutorials>
* <https://www.tensorflow.org/js/demos>
# 对移动和物联网设备的推断
......
......@@ -116,7 +116,7 @@ Edge TPU 有两种可用方式:
* 珊瑚开发板,其中包含 TPU 以及预安装的所有必需软件和 API
* Edge TPU USB 扩展器,可在所需计算机上添加另一个处理器
USB 加速器与任何具有运行 Debian 的 USB 端口的 Linux 计算机兼容。 要设置 USB 加速器,请从 [https](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [://](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [dl](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [下载`.tar`文件。](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [Google](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [com](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [/](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [珊瑚](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [/](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [edgetpu](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [_](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [api](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [/](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [edgetpu](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [_](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [API](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [_](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [最新](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [焦油](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [gz](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [-](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [O](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [edgetpu](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [_](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [API](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [焦油](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [gz](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [-](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [信任](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [-](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [服务器](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [-](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [名称](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) [/](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz) ,然后解压缩并运行`install.sh`
USB 加速器与任何具有运行 Debian 的 USB 端口的 Linux 计算机兼容。 要设置 USB 加速器,请从[这里](https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz)下载`.tar`文件,然后解压缩并运行`install.sh`
这里要注意的一点是,在安装过程中,安装程序将要求启用最大工作频率,这将大大加快推理时间,但也会使 TPU 摸起来很烫。
......@@ -165,7 +165,7 @@ Google 为语音和视觉应用发布了自己的制造商套件,称为 AIY。
语音工具包提供了构建自然语言处理器并将其连接到 Google Assistant 或 Cloud Speech-to-Text 服务的功能。 该套件随附 Raspberry Pi Zero,以及定制设计的语音引擎盖和用于音频功能的扬声器。 该套件还随附可插入 Pi 的 SD 卡,以及用于许多最常见应用程序的大量演示,示例和摘要。 它还带有一个在设备上运行 Google Assistant 并将其转变为智能家居设备的应用程序。
要开始使用语音工具包,请按照 [https](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [://](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [aiyprojects](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [上的说明构建设备。](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [withgoogle](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [com](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [/](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [语音](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [/#](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [组件](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [-](https://aiyprojects.withgoogle.com/voice/#assembly-guide) [指南](https://aiyprojects.withgoogle.com/voice/#assembly-guide) 。 该设备设计合理,易于组装和设置。 要设置设备,可以使用计算机或手机。 该套件的设置非常简单,可以通过**安全外壳****SSH** )或 HDMI 连接来完成。 完成后,可以运行许多演示来进一步了解和探索该工具包,例如前面提到的 Google Assistant 应用程序。
要开始使用语音工具包,请按照[这个页面](https://aiyprojects.withgoogle.com/voice/#assembly-guide)上的说明构建设备。 该设备设计合理,易于组装和设置。 要设置设备,可以使用计算机或手机。 该套件的设置非常简单,可以通过**安全外壳****SSH** )或 HDMI 连接来完成。 完成后,可以运行许多演示来进一步了解和探索该工具包,例如前面提到的 Google Assistant 应用程序。
语音工具包可以完成的一些事情包括创建自定义语音用户界面和使用助手控制 IoT 设备。
......@@ -177,7 +177,7 @@ Google 为语音和视觉应用发布了自己的制造商套件,称为 AIY。
视觉套件提供了构建智能相机的功能,该相机可以使用机器学习来查看和识别对象,甚至可以在其上运行自定义 TF 模型。 与语音工具包一样,该工具包还附带 Raspberry Pi Zero,定制设计的 Vision Bonnet,压电蜂鸣器和 Raspberry Pi Camera V2。 该套件随附一个预先存储有 AIY 系统图像的 SD 卡,其中包括针对多种计算机视觉应用的演示,例如图像分类,物体检测,面部检测,食物分类和自动拍照。
和以前一样,可以按照 [https](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [://](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [aiyprojects](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [中的说明组装视觉套件。](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [withgoogle](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [com](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [/](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [视觉](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [/#](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [组装](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [-](https://aiyprojects.withgoogle.com/vision/#assembly-guide) [指南](https://aiyprojects.withgoogle.com/vision/#assembly-guide) 。 该设备有一个简单的...
和以前一样,可以按照[这里](https://aiyprojects.withgoogle.com/vision/#assembly-guide)。 该设备有一个简单的...
# 概要
......
......@@ -379,9 +379,9 @@ TF 2.0 基本 API 将包括针对任务的更多预制估算器,例如增强
# 更多资源可看
可以在 TensorFlow Beta 网站上找到教程和许多其他资源,其中包含有关创建和训练机器学习模型的关键因素的信息。 该页面还为该领域的许多重要技术提供了许多有用的端到端教程( [https://www.tensorflow.org/beta](https://www.tensorflow.org/beta)
可以在 TensorFlow Beta 网站上找到教程和许多其他资源,其中包含有关创建和训练机器学习模型的关键因素的信息。 该页面还为该领域的许多重要技术提供了[许多有用的端到端教程](https://www.tensorflow.org/beta)
可以在网站上找到 TF 2.0 的官方文档,以及该模块中每个 API 的详细文档。 该站点还具有指向其他 TensorFlow 模块和功能的链接( [https://www.tensorflow.org/versions/r2.0/api_docs/python/tf](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf)
可以在网站上找到 TF 2.0 的官方文档,以及该模块中每个 API 的详细文档。 该站点还具有[指向其他 TensorFlow 模块和功能的链接](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf)
TensorFlow Medium 博客还提供有关 TensorFlow 库和服务状态的许多更新,并且源源不断的有用新闻和...
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册