《面向机器智能的TensorFlow实践》一2.1 选择安装环境

简介:

本节书摘来自华章出版社《面向机器智能的TensorFlow实践》一书中的第2章,第2.1节,作者 山姆·亚伯拉罕(Sam Abrahams)丹尼亚尔·哈夫纳(Danijar Hafner)[美] 埃里克·厄威特(Erik Erwitt)阿里尔·斯卡尔皮内里(Ariel Scarpinelli),更多章节内容可以访问云栖社区“华章计算机”公众号查看。






第2章

安装TensorFlow

在开始使用TensorFlow之前,需要先将其安装到计算机中。幸运的是,TensorFlow官网提供了一份在Linux和Mac OS X系统中安装TensorFlow的完整分步指南。本章对安装中将会出现的不同选项如何选择给出了一些建议,并提供了一些关于能够与TensorFlow很好地集成的其他第三方软件的信息。此外,本章还给出一份从源代码构建和安装TensorFlow的参考,以帮助用户安装带有GPU支持的TensorFlow。

如果用户对Pip/Conda、虚拟环境,或从源码安装程序已经非常熟悉,则可放心地参考如下官方指南:

https://www.tensorflow.org/versions/master/get_started/os_setup.html

2.1 选择安装环境

许多软件都会使用一些库和独立维护的软件包。对于开发者而言,这是一件好事,因为这种做法有利于代码复用,而且他们可专注于创建新的功能,而无需重复造轮。然而,这种做法也会付出一定的代价。如果某个程序的正常运行必须依赖于另一个库,则用户或这款软件必须确保任何运行该程序代码的机器都已安装了依赖库。乍看上去,这几乎不算一个问题—只需随这款软件一起安装所需的依赖库不就行了?不幸的是,这种方法会带来一些意想不到的后果,而且常常如此。

设想如下场景:你找到一款出色的软件—软件A,下载后开始安装。在执行其安装脚本时,软件A需要另外一款依赖软件。如果你的计算机中缺少这个依赖软件,则需进行安装。我们称之为软件依赖项(software dependency)。假设该依赖项的当前版本号为1.0。软件A先安装1.0版的依赖项,然后再对自身进行安装,一切都进行得很顺利。再假设将来的某个时候,你偶然发现了另一款希望安装的软件—软件B。软件B需要使用2.0版的依赖项,相对于1.0版,这个版本做出了重大改进,且不具备向下兼容性。鉴于这个依赖项的发行方式,无法做到1.0和2.0两个版本同时运行,因为这将导致使用它时产生二义性(这两个版本的都会作为依赖项被导入,应使用哪个版本?)。最终,软件B将用2.0版的依赖项覆盖1.0版,并完成自身的安装。经历一番艰辛后,你才发现软件A与2.0版依赖项不兼容,因此完全被破坏,情况顿时变得很糟。如何才能在同一台机器上既可运行软件A,也可运行软件B?这个问题非常重要,因为TensorFlow也依赖于若干开源软件。利用Python(用于将TensorFlow打包的编程语言),可采取多种方式避免上述依赖冲突问题。

代码库内部的软件包依赖。无需依赖于系统级的软件包或库,开发者可将所需版本的依赖库放在自己的代码中,并在局部引用。按照这种方式,软件所需的所有代码都是可直接操控的,不会受到外部变动的影响。然而,这种方式并非无懈可击。首先,它增加了安装该软件所需的磁盘空间,这意味着安装时间更长、使用成本更高。其次,用户可能已经以全局方式安装了依赖库,这意味着局部版本完全是多余的,会占用不必要的空间。最后,依赖库在将来可能会推出修复若干严重安全漏洞的关键的、保持向下兼容性的更新。这时,对代码库中依赖库的更新将无法借助软件包管理器,而只能由软件开发者手工完成。不幸的是,最终用户对此无从插手,因为何时直接包含依赖库完全是由开发者决定的。有一些依赖库由于没有被包含进TensorFlow,因此必须单独安装。

使用依赖环境。一些软件包管理器中包含可创建虚拟环境的相关软件。在一个环境中可完全独立地维护特定版本的软件而不受其他环境的影响。借助Python,有多种选择。对于Python的标准发行版,Virtualenv是直接可用的。如果使用的是Anaconda,它会包含一个内置的虚拟环境系统及其软件包管理器—Conda。稍后,笔者将会介绍如何使用这两种工具安装TensorFlow。

使用容器。容器(如Docker)是将软件与完整的文件系统,包括其运行时和依赖库打包的轻量级方案。因此,任何可运行一个容器的机器(包括虚拟机在内)都能够与任何运行该容器的其他机器对其中所包含的软件获得完全相同的运行效果。与简单地激活Virtualenv环境或Conda环境相比,虽然从Docker中启动TensorFlow需要略多一点的步骤,但当需要将代码在不同实例(无论是虚拟机还是物理的服务器)上进行部署时,它在不同运行时环境中的一致性使其成为无价之宝。下文将介绍如何安装Docker,并创建你自己的TensorFlow容器(以及如何使用官方的TensorFlow镜像)。

一般而言,如果准备在单机上安装和使用TensorFlow,笔者建议采用Virtualenv或Conda的虚拟环境。它们能够以较小的代价解决依赖冲突问题,且易于设置。一旦创建完毕,便几乎一劳永逸。如果准备将TensorFlow代码部署到一台或多台服务器中,则值得创建一个Docker容器镜像。虽然所需的步骤略多,但却会大大降低在多服务器上部署的成本。笔者不推荐既不使用虚拟环境,也不使用容器的TensorFlow安装方法。

相关文章
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
11611 4
|
10月前
|
Ubuntu TensorFlow 算法框架/工具
如何在Ubuntu上安装TensorFlow 24.04
如何在Ubuntu上安装TensorFlow 24.04
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
1280 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
|
并行计算 TensorFlow 算法框架/工具
tensorflow安装
tensorflow安装——GPU版
405 2
|
并行计算 PyTorch TensorFlow
环境安装(一):Anaconda3+pytorch1.6.0+cuda10.0+cudnn7.6.4+tensorflow1.15+pycocotools+pydensecrf
这篇文章详细介绍了如何在Anaconda环境下安装和配置深度学习所需的库和工具,包括PyTorch 1.6.0、CUDA 10.0、cuDNN 7.6.4、TensorFlow 1.15、pycocotools和pydensecrf,并提供了pip国内镜像源信息以及Jupyter Notebook和Anaconda的基本操作。
1928 0
环境安装(一):Anaconda3+pytorch1.6.0+cuda10.0+cudnn7.6.4+tensorflow1.15+pycocotools+pydensecrf
|
自然语言处理 C# 开发者
Uno Platform多语言开发秘籍大公开:轻松驾驭全球用户,一键切换语言,让你的应用成为跨文化交流的桥梁!
【8月更文挑战第31天】Uno Platform 是一个强大的开源框架,允许使用 C# 和 XAML 构建跨平台的原生移动、Web 和桌面应用程序。本文详细介绍如何通过 Uno Platform 创建多语言应用,包括准备工作、设置多语言资源、XAML 中引用资源、C# 中加载资源以及处理语言更改。通过简单的步骤和示例代码,帮助开发者轻松实现应用的国际化。
231 1
|
TensorFlow 算法框架/工具 Python
【Mac 系统】解决VSCode用Conda成功安装TensorFlow但程序报错显示红色波浪线Unable to import ‘tensorflow‘ pylint(import-error)
本文解决在Mac系统上使用VSCode时遇到的TensorFlow无法导入问题,原因是Python解析器未正确设置为Conda环境下的版本。通过在VSCode左下角选择正确的Python解析器,即可解决import TensorFlow时报错和显示红色波浪线的问题。
810 9
|
并行计算 TensorFlow 算法框架/工具
Windows11+CUDA12.0+RTX4090如何配置安装Tensorflow2-GPU环境?
本文介绍了如何在Windows 11操作系统上,配合CUDA 12.0和RTX4090显卡,通过创建conda环境、安装特定版本的CUDA、cuDNN和TensorFlow 2.10来配置TensorFlow GPU环境,并提供了解决可能遇到的cudnn库文件找不到错误的具体步骤。
2423 3
|
Linux TensorFlow 算法框架/工具
安装GPU版本的TensorFlow
【7月更文挑战第3天】安装GPU版本的TensorFlow。
604 1
|
持续交付 测试技术 jenkins
JSF 邂逅持续集成,紧跟技术热点潮流,开启高效开发之旅,引发开发者强烈情感共鸣
【8月更文挑战第31天】在快速发展的软件开发领域,JavaServer Faces(JSF)这一强大的Java Web应用框架与持续集成(CI)结合,可显著提升开发效率及软件质量。持续集成通过频繁的代码集成及自动化构建测试,实现快速反馈、高质量代码、加强团队协作及简化部署流程。以Jenkins为例,配合Maven或Gradle,可轻松搭建JSF项目的CI环境,通过JUnit和Selenium编写自动化测试,确保每次构建的稳定性和正确性。
224 0

热门文章

最新文章