中文书名:给程序员的人工智能和机器学习
译者:朱瑞
译者邮箱:kevindree@gmail.com
译者声明:译者在IT领域工作多年,基于对于人工智能、机器学习的兴趣,自学了很多机器学习课程,Ai and machine learning for coders是其中的一本书。为了让更多华人了解和学习人工智能的相关技术,在学习的过程中,经过长时间的辛勤劳动和付出,将这一中文版呈现在大家面前。翻译中难免有许多不准确的地方,还望广大读者原谅。
Geehootek.com是译者首发网站,请尊重译者劳动,转载时请注明出处!!!
什么是TensorFlow
TensorFlow 是一个用于创建和使用机器学习模型的开源平台。 它实现了机器学习所需的许多常用算法和模式,使您无需学习所有底层数学和逻辑,并使您能够专注于您的场景。 它面向所有人,从爱好者到专业开发人员,再到推动人工智能发展的研究人员。 重要的是,它还支持将模型部署到 Web、云、移动和嵌入式系统。 我们将在本书中涵盖所有这些场景。
TensorFlow 的高层架构如图 1-11 所示。

创建机器学习模型的过程称为训练。 这指的是计算机使用一组算法来学习输入以及不同输入之间的区别的方法。例如,如果你想让计算机来识别猫和狗,你可以使用两者的大量图片来创建模型,计算机将使用该模型来尝试弄清楚是什么是猫,什么是狗。模型完成训练后,让它对未来的输入进行识别或分类的过程称为推理。
因此,要训练模型,您需要几项内容。 首先是一组用于设计模型的 API。 使用 TensorFlow 可以通过三种主要方式来做到这一点:您可以手动编写所有代码,找出计算机如何学习的逻辑,然后在代码中实现(不推荐); 您可以使用内置的估计器,它们是已经实现的神经网络,您可以对其进行自定义; 或者您可以使用 Keras,这是一种高级 API,可让您在代码中封装常见的机器学习范例。 本书将主要关注在创建模型时使用 Keras API。
训练模型的方法有很多种。 在大多数情况下,您可能只使用单个芯片,无论是中央处理器 (CPU)、图形处理器 (GPU) 还是称为张量处理器 (TPU) 的新东西。 在更高级的工作和研究环境中,可以使用跨多个芯片的并行训练,采用跨多个芯片训练的分布策略。 TensorFlow 也支持这一点。
任何模型的生命线都是它的数据。 如前所述,如果您想创建一个可以识别猫狗的模型,则需要使用大量猫狗的示例对其进行训练。 但是您如何管理这些示例呢? 随着时间的推移,您会发现这通常涉及比创建模型本身更多的编码。 TensorFlow 附带 API 以尝试简化此过程,称为 TensorFlow 数据服务。 为了方便学习,它们包括许多经过预处理的数据集,您可以仅通过一行代码使用他们。 它们还为您提供了用于处理原始数据的工具,使其更易于使用。
除了创建模型之外,您还需要能够将它们交付给人们使用。 为此,TensorFlow 包含用于服务的 API,您可以在其中通过 HTTP 连接为云或 Web 用户提供模型推理。 对于在移动设备或嵌入式系统上运行的模型,则有 TensorFlow Lite,它提供了在 Android 和 iOS 以及基于 Linux 的嵌入式系统(例如 Raspberry Pi)上进行模型推理的工具。 TensorFlow Lite 的一个分支,称为 TensorFlow Lite Micro (TFLM),也通过称为 TinyML 的新兴概念提供对微控制器的推理。 最后,如果您想为浏览器或 Node.js 用户提供模型,TensorFlow.js 也提供了以这种方式训练和执行模型的能力。
接下来,我将向您展示如何安装 TensorFlow,以便您可以开始用它创建并使用机器学习模型。
使用TensorFlow
在本节中,我们将介绍安装和使用 TensorFlow 的三种主要方式。 我们将从如何使用命令行将其安装到您的开发环境开始。 然后,我们将探索使用流行的 PyCharm IDE(集成开发环境)来安装 TensorFlow。 最后,我们将了解 Google Colab 以及如何使用它在浏览器中通过基于云的后端访问 TensorFlow 代码。
在 Python 中安装 TensorFlow
TensorFlow 支持使用多种语言创建模型,包括 Python、Swift、Java 等。 在本书中,我们将专注于使用 Python,由于它对数学模型的广泛支持,它实际上已经成为机器学习的语言。 如果您还没有python,我强烈建议您访问 Python 以启动并运行它,并访问 learnpython.org 以学习 Python 语言语法。
使用 Python 有多种安装框架的方法,但 TensorFlow 团队默认支持的方法是 pip。
因此,在您的 Python 环境中,安装 TensorFlow 十分简单,如下:
pip install tensorflow
需要注意的是,从 2.1 版本开始,这将默认安装 GPU 版本的 TensorFlow。 在此之前,它使用的是 CPU 版本。 因此,在安装之前,请确保您拥有受支持的 GPU 及其所有必需的驱动程序。 有关详细信息,请访问 TensorFlow。
如果您没有所需要的 GPU 或驱动程序,您仍然可以选择在任何 Linux、PC 或 Mac 上安装 TensorFlow 的 CPU 版本:
pip install tensorflow-cpu
完成安装后,您可以启动并运行python,在python环境中您可以使用以下代码测试您的 TensorFlow 版本:
import tensorflow as tf
print(tf.__version__)
你应该可以看到如图 1-12 所示的输出结果。 这个命令将打印当前运行的 TensorFlow 版本——在这里您可以看到已安装的版本是 2.0.0。

在 PyCharm 中使用 TensorFlow
我特别喜欢使用 PyCharm 的免费社区版本来用 TensorFlow 构建模型。 PyCharm 很好用的原因有很多,但我最喜欢它的原因之一是它可以非常容易的管理虚拟环境。 这意味着您可以拥有一个包含针对您特定项目的特定工具版本(例如TensorFlow)的 Python 环境。 因此,如果你想在一个项目中使用 TensorFlow 2.0 而在另一个项目中使用 TensorFlow 2.1,你可以通过虚拟环境将它们分开,而不必在切换环境时处理安装/卸载依赖项。 此外,借助 PyCharm,您可以对 Python 代码进行分步调试——这是必须的,尤其是在您刚刚起步的情况下。
例如,在图 1-13 中,我有一个名为 example1 的新项目,我指定要使用 Conda 创建一个新环境。 当我创建项目时,我将拥有一个干净的新的 Python 虚拟环境,我可以在其中安装我想要的任何版本的 TensorFlow。

创建项目后,您可以打开“File”→“Setting”对话框,然后从左侧菜单中选择“Project:<your proejct name>”条目。 然后您将看到更改项目解释器和项目结构设置的选项。 选择 Project Interpreter 链接,您将看到正在使用的解释器,以及安装在该虚拟环境中的包列表(图 1-14)。

单击右侧的 + 按钮,将打开一个对话框,显示当前可用的包。 在搜索框中键入“tensorflow”,您将看到所有名称中带有“tensorflow”的可用软件包(图 1-15)。

当您选择了 TensorFlow 或您想要安装的任何其他包,单击“Install Package”按钮,PyCharm 将完成剩下的工作。
TensorFlow 安装完成后,您就可以使用 Python 编写和调试 TensorFlow 代码了。
在 Google Colab 中使用 TensorFlow
另一个可能最容易上手的选择是使用 Google Colab,这是一个托管的 Python 环境,您可以通过浏览器访问它。 Colab 的真正优点在于它提供 GPU 和 TPU 后端,因此您可以使用最先进的硬件免费训练模型。
当你访问 Colab 网站时,你可以选择打开以前的 Colabs 或开始一个新的笔记本,如图 1-16 所示。

单击 New Python 3 Notebook 链接将打开编辑器,您可以在其中添加代码或文本(图 1-17)。 您可以通过单击窗格左侧的“播放”按钮(箭头)来执行代码。

如此处所显示的,检查 TensorFlow 版本总是一个好的习惯,以确保您运行的是正确的版本。 Colab 的内置 TensorFlow 通常会比最新版本落后一两个版本。 如果是这种情况,您可以使用 pip install 更新它,只需使用如下代码块:
!pip install tensorflow==2.1.0
运行此命令后,您在 Colab 中的当前环境将使用所需版本的 TensorFlow。