如何在 CentOS 上安装 TensorFlow

在本教程中,我们将了解如何在 CentOS 上开始使用 TensorFlow。 我们将介绍两种方法。 首先,我们将看看通过 Python 包管理器 pip 在 Python 虚拟环境中安装 TensorFlow。 之后,我们将逐步通过 Anaconda 包管理器安装 TensorFlow。 最后,我们将介绍从源代码构建 TensorFlow pip 包。

机器学习是一个快速发展的软件开发领域,它提供了许多令人兴奋和惊人的技术进步。 在底层,它由复杂的数学公式和算法组成。 TensorFlow 为开发人员提供了一种途径,可以通过优雅的 Python 界面获得机器学习及其应用程序的强大功能。

飞行前检查:

  • 这些说明在 Liquid Web Self-Managed CentOS 8 服务器上以 root 用户身份执行。
  • 这些说明适用于 CentOS 7 或 CentOS 8 服务器。
  • 这些说明假设您的系统上已经安装了 Python 3.4 或更高版本。
  • 这些说明还假设您安装了 Anaconda 或 Miniconda 的工作版本。 如果您正在寻找如何开始使用 Conda 的指导,请参阅这篇文章:/kb/using-conda-for-alternate-python-installations/

画中画

第 1 步:更新和设置环境

作为最佳实践,我们需要通过运行以下命令来确保我们的系统包是最新的:

[root@centos8 ~]# yum update -y

第 2 步:创建和激活虚拟环境

现在系统是最新的,让我们创建一个虚拟 Python 环境:

[root@centos8 ~]# python3 -m venv pip-tensorflow

上面命令的最后一个参数“pip-tensorflow”是虚拟环境的名称。 您可以随意命名虚拟环境。

现在存在虚拟环境,我们需要激活它:

[root@centos8 ~]# source pip-tensorflow/bin/activate
(pip-tensorflow) [root@centos8 ~]#

要安装 TensorFlow 2,这是 TensorFlow 的最新推荐版本,我们需要更新几个名为 setuptools 的关键 Python 包:

(pip-tensorflow) [root@centos8 ~]# pip install -U pip setuptools
Cache entry deserialization failed, entry ignored
Collecting pip
  Using cached https://files.pythonhosted.org/packages/00/b6/cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl
Cache entry deserialization failed, entry ignored
Collecting setuptools
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/f9/d3/55738b20d3832dfa3cd3d9b07e29a8162edb480bf988332f5e6e48ca444/setuptools-44.0.0-py2.py3-none-any.whl (83kB)
    100% |████████████████████████████████| 83kB 1.MB/s
Installing collected packages: pip, setuptools
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
  Found existing installation: setuptools 39.2.0
    Uninstalling setuptools-39.2.0:
      Successfully uninstalled setuptools-39.2.0
Successfully installed pip-19.3.1 setuptools-44.0.0

第 3 步:安装和测试 TensorFlow

环境现在已准备好安装 TensorFlow:

(pip-tensorflow) [root@centos8 ~]# pip install tensorflow

TensorFlow 现已安装! 验证这一点并开始使用基本的 example,我们将进入 Python shell:

注意:根据您机器上 Python 3 的版本,Python 的版本输出在您的系统上可能与我们在此版本中的略有不同 example.

(pip-tensorflow) [root@centos8 ~]# python
Python 3.6.8 (default, Oct  7 2019, 17:58:22)
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

进入 Python shell 后,复制并粘贴这段文本,然后按 Enter:

import tensorflow as tf

vals1 = tf.constant([1, 1, 2, 2])
vals2 = tf.constant([2, 2, 4, 4])

result = tf.multiply(vals1, vals2)

tf.print(result)

输出应如下所示:

(pip-tensorflow) [root@centos8 ~]# python
Python 3.6.8 (default, Oct  7 2019, 17:58:22)
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>>
>>> vals1 = tf.constant([1, 1, 2, 2])
2020-01-08 22:28:10.881818: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-01-08 22:28:10.885198: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3599995000 Hz
2020-01-08 22:28:10.885329: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x558aeb6013b0 executing computations on platform Host. Devices:
2020-01-08 22:28:10.885347: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): Host, Default Version
>>> vals2 = tf.constant([2, 2, 4, 4])
>>>
>>> result = tf.multiply(vals1, vals2)
>>>
>>> tf.print(result)
[2 2 8 8]

您可能会注意到关于 TensorFlow 二进制文件未编译为使用特定 CPU 功能的一些警告。 原因是 TensorFlow Pip 包是在没有这些内核选项的情况下构建的,以便为尽可能多的系统提供更广泛的安装选项。

不过不用担心,因为您仍然可以毫无问题地使用 TensorFlow。 可以从源代码编译 TensorFlow 以创建一个包 编译以利用这些额外的 CPU 功能。 出于本教程的目的,我们将专注于 TensorFlow 的基础知识并消除这些警告。

(pip-tensorflow) [root@centos8 ~]# echo "export TF_CPP_MIN_LOG_LEVEL=2" >> .bash_profile
(pip-tensorflow) [root@centos8 ~]# source .bash_profile

如果我们运行 example 同样,我们应该看到这些警告现在被隐藏了:

(pip-tensorflow) [root@centos8 ~]# python
Python 3.6.8 (default, Oct  7 2019, 17:58:22)
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>>
>>> vals1 = tf.constant([1, 1, 2, 2])
>>> vals2 = tf.constant([2, 2, 4, 4])
>>>
>>> result = tf.multiply(vals1, vals2)
>>>
>>> tf.print(result)
[2 2 8 8]

使用 Anaconda 安装 TensorFlow

第 1 步:创建环境并安装 TensorFlow

使用 Anaconda 或 Miniconda 开始使用 TensorFlow 的好处之一是您可以同时创建环境和安装软件包。

[root@centos8 ~]# conda create -n conda-tensorflow tensorflow -y

在上面的命令中,“conda-tensorflow”只是将安装 TensorFlow 的 conda 环境的名称。 您可以为环境选择任何您喜欢的名称。 关于通过 Conda 安装要注意的另一个方面是,我们不必担心升级 TensorFlow 的依赖项,因为这是为我们处理的。

第 2 步:激活和测试 TensorFlow

您可能已经注意到,在创建 Conda 环境并安装 TensorFlow 后,Conda 提供了有关如何激活和停用环境的说明:

# To activate this environment, use
#
#     $ conda activate conda-tensorflow
#
# To deactivate an active environment, use
#
#     $ conda deactivate

让我们继续并激活它:

[root@centos8 ~]# conda activate conda-tensorflow
(conda-tensorflow) [root@centos8 ~]#

为了进行测试,让我们再次进入 Python shell 并复制并粘贴到我们之前使用的同一片段中。

(conda-tensorflow) [root@centos8 ~]# python
Python 3.7.6 | packaged by conda-forge | (default, Jan  7 2020, 20:28:53)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>>
>>> vals1 = tf.constant([1, 1, 2, 2])
>>> vals2 = tf.constant([2, 2, 4, 4])
>>>
>>> result = tf.multiply(vals1, vals2)
>>>
>>> tf.print(result)
[2 2 8 8]

这里的所有都是它的! 本教程提供了一个很好的 example TensorFlow 可以做的那种工作。 此时,您已准备好开始构建神经网络并训练它们做任何有趣的事情,例如图像识别或自然语言处理!