TensorFlow 2.0 安装指南

2023-11-17

TensorFlow 2.0 beta1 已经发布。本文详细介绍在个人电脑或服务器上安装 TensorFlow 2.0 beta1 的步骤和各种细节, 让你第一次安装 TensorFlow 2.0 就上手!
一般安装步骤

TensorFlow 的 Python 版本使用最为广泛。作为一个 Python 包,TensorFlow 和其他 Python 包的安装方法区别不大,使用 Python 的包管理器 pip 即可。具体步骤如下:

  1. 安装 Python 环境。此处建议安装 Anaconda 。这是一个开源的 Python 发行版本,提供了一个完整的科学计算环境,包括 NumPy、SciPy 等常用科学计算库。当然,你有权选择自己喜欢的 Python 环境。

  2. 使用 Anaconda 自带的 conda 包管理器建立一个 Conda 虚拟环境,并进入该虚拟环境。在命令行下输入以下命令:

     #建立虚拟环境#“tf2.0”是你建立的 Conda 虚拟环境的名字
     #python=3.7 代表该虚拟环境的 Python 版本为 3.7
     conda create --name tf2.0 python=3.7
     #进入名为“tensorflow”的虚拟环境 
     conda activate tf2.0 
    
  3. 使用 Python 包管理器 pip 安装 TensorFlow。在命令行下输入以下命令:

       pip install tensorflow==2.0.0-beta1     # TensorFlow CPU 版本
    

pip install tensorflow-gpu    # TensorFlow GPU 版本,需要具有 NVIDIA 显卡及正确安装驱动程序,详见下文

等待片刻即安装完毕。
注:Anaconda下载 链接https://www.anaconda.com

小技巧

也可以使用

	conda install tensorflow

或者

conda install tensorflow-gpu 

来安装 TensorFlow,不过 conda 源的版本往往更新较慢,难以第一时间获得最新的 TensorFlow 版本;在 Windows 下,需要打开开始菜单中的 “Anaconda Prompt” 进入 Anaconda 的命令行环境;在国内环境下,推荐使用 国内的 pypi 镜像 和 Anaconda 镜像 ,将显著提升 pip 和 conda 的下载速度;

注:清华大学的 pypi 镜像 链接

https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

清华大学的 Anaconda 镜像 链接

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

如果对磁盘空间要求严格(比如服务器环境),可以安装 Miniconda ,仅包含 Python 和 Conda,其他的包可自己按需安装。

pip 和 conda 包管理器
pip 是最为广泛使用的 Python 包管理器,可以帮助我们获得最新的 Python 包并进行管理。常用命令如下:

pip install [package-name]              # 安装名为 [package-name] 的包
pip install [package-name]==X.X         # 安装名为 [package-name] 的包并指定版本 X.X
pip install [package-name] --proxy=代理服务器IP:端口号         # 使用代理服务器安装
pip install [package-name] --upgrade    # 更新名为 [package-name] 的包
pip uninstall [package-name]            # 删除名为 [package-name] 的包
pip list                                # 列出当前环境下已安装的所有包

conda 包管理器是 Anaconda 自带的包管理器,可以帮助我们在 conda 环境下轻松地安装各种包。相较于 pip 而言,conda 的通用性更强(不仅是 Python 包,其他包如 CUDA Toolkit 和 cuDNN 也可以安装),但 conda 源的版本更新往往较慢。常用命令如下:

conda install [package-name]        # 安装名为 [package-name] 的包
conda install [package-name]=X.X    # 安装名为 [package-name] 的包并指定版本 X.X
conda update [package-name]         # 更新名为 [package-name] 的包
conda remove [package-name]         # 删除名为[package-name]的包
conda list                          # 列出当前环境下已安装的所有包
conda search [package-name]         # 列出名为 [package-name] 的包在 conda 源中的所有可用版本

conda 中配置代理:在用户目录下的 .condarc 文件中添加以下内容:

proxy_servers:
	 http: http://代理服务器IP:端口号

Conda 虚拟环境
在 Python 开发中,很多时候我们希望每个应用有一个独立的 Python 环境(比如应用 1 需要用到 TensorFlow 1.X,而应用 2 使用 TensorFlow 2.0)。这时,Conda 虚拟环境即可为一个应用创建一套“隔离”的 Python 运行环境。使用 Python 的包管理器 conda 即可轻松地创建 Conda 虚拟环境。常用命令如下:

conda create --name [env-name]      # 建立名为 [env-name] 的 Conda 虚拟环境
conda activate [env-name]           # 进入名为 [env-name] 的 Conda 虚拟环境
conda deactivate                    # 退出当前的 Conda 虚拟环境
conda env remove --name [env-name]  # 删除名为 [env-name] 的 Conda 虚拟环境
conda env list                      # 列出所有 Conda 虚拟环境

GPU 版本 TensorFlow 安装指南

GPU 版本的 TensorFlow 可以利用 NVIDIA GPU 强大的计算加速能力,使 TensorFlow 的运行更为高效,尤其是可以成倍提升模型训练的速度。

在安装 GPU 版本的 TensorFlow 前,你需要具有一块不太旧的 NVIDIA 显卡,以及正确安装 NVIDIA 显卡驱动程序、CUDA Toolkit 和 cnDNN。

GPU 硬件的准备

TensorFlow 对 NVIDIA 显卡的支持较为完备。对于 NVIDIA 显卡,要求其 CUDA Compute Capability 须不低于3.0,可以到 NVIDIA的官方网站 查询自己所用显卡的CUDA Compute Capability。目前,AMD 的显卡也开始对 TensorFlow 提供支持,可访问 这篇博客文章 查看详情。

注:NVIDIA的官方网站 链接

https://developer.nvidia.com/cuda-gpus/

博客文章 链接

https://medium.com/tensorflow/amd-rocm-gpu-support-for-tensorflow-33c78cc6a6cf

NVIDIA驱动程序的安装

Windows
Windows 环境中,如果系统具有 NVIDIA 显卡,则往往已经自动安装了 NVIDIA 显卡驱动程序。如未安装,直接访问 NVIDIA 官方网站 下载并安装对应型号的最新公版驱动程序即可。

注:NVIDIA 官方网站 链接

https://www.nvidia.com/Download/index.aspx?lang=en-us

Linux
在服务器版Linux系统下,同样访问 NVIDIA官方网站 下载驱动程序(为 .run 文件),并使用

	sudo bash DRIVER_FILE_NAME.run 

命令安装驱动即可。在安装之前,可能需要使用

sudo apt-get install build-essential 

安装合适的编译环境。

在具有图形界面的桌面版Linux系统上,NVIDIA 显卡驱动程序需要一些额外的配置,否则会出现无法登录等各种错误。如果需要在 Linux 下手动安装 NVIDIA 驱动,注意在安装前进行以下步骤(以 Ubuntu 为例):

禁用系统自带的开源显卡驱动Nouveau(在/etc/modprobe.d/blacklist.conf文件中添加一行blacklist nouveau ,使用sudo update-initramfs -u更新内核,并重启)

禁用主板的 Secure Boot 功能

停用桌面环境 (如sudo service lightdm stop)

删除原有 NVIDIA 驱动程序 (如sudo apt-get purge nvidia*)

小技巧

对于桌面版Ubuntu系统,有一个很简易的NVIDIA驱动安装方法:在系统设置(System Setting)里面选软件与更新(Software & Updates),然后点选Additional Drivers里面的“Using NVIDIA binary driver”选项并点选右下角的“Apply Changes”即可,系统即会自动安装NVIDIA驱动,但是通过这种安装方式安装的NVIDIA驱动往往版本较旧。

NVIDIA 驱动程序安装完成后,可在命令行下使用nvidia-smi命令检查是否安装成功,若成功则会打印出当前系统安装的 NVIDIA 驱动信息,形式如下:

提示

命令nvidia-smi可以查看机器上现有的GPU及使用情况。(在 Windows 下,将 C:\Program Files\NVIDIA Corporation\NVSMI加入 Path 环境变量中即可,或 Windows 10 下可使用任务管理器的“性能”标签查看显卡信息)

更详细的 GPU 环境配置指导可以参考 2篇博客文章 。

注:参考博客文章1 链接

https://www.linkedin.com/pulse/installing-nvidia-cuda-80-ubuntu-1604-linux-gpu-new-victor/

参考博客文章2 链接

https://blog.csdn.net/wf19930209/article/details/81877822

CUDA Toolkit 和 cnDNN 的安装
在Anaconda环境下,推荐使用:

conda install cudatoolkit=X.X
conda install cudnn=X.X.X

安装 CUDA Toolkit 和 cnDNN,其中 X.X 和 X.X.X 分别为需要安装的 CUDA Toolkit 和 cuDNN 版本号,必须严格按照 TensorFlow 官方网站所说明的版本安装(对于 TensorFlow 2.0 beta1,可以安装版本为 10.0 的 CUDA Toolkit 和版本为 7.6.0 的 cuDNN)。在安装前,可使用conda search cudatoolkit和conda search cudnn搜索 conda 源中可用的版本号。

当然,也可以按照 TensorFlow 官方网站上的说明 手动下载 CUDA Toolkit 和 cuDNN 并安装,不过过程会稍繁琐。

使用 conda 包管理器安装 GPU 版本的 TensorFlow 时,会自动安装对应版本的 CUDA Toolkit 和 cuDNN。conda 源的更新较慢,如果对版本不太介意,推荐直接使用

conda install tensorflow-gpu

进行安装。

注:TensorFlow 官方网站上的说明 链接

https://www.tensorflow.org/install/gpu

第一个程序

安装完毕后,我们来编写一个简单的程序来验证安装。
在命令行下输入conda activate tensorflow进入之前建立的安装有 TensorFlow 的 Conda 虚拟环境,再输入python进入 Python 环境,逐行输入以下代码:

import tensorflow as tf
A = tf.constant([[1, 2], [3, 4]])
B = tf.constant([[5, 6], [7, 8]])
C = tf.matmul(A, B)
print(C)

如果能够最终输出:

tf.Tensor(
[[19 22]
[43 50]], shape=(2, 2), dtype=int32)

说明 TensorFlow 已安装成功。运行途中可能会输出一些 TensorFlow 的提示信息,属于正常现象。
IDE 设置
对于机器学习的研究者和从业者,建议使用 PyCharm 作为 Python 开发的 IDE。

注:PyCharm 链接

http://www.jetbrains.com/pycharm/

在新建项目时,你需要选定项目的 Python Interpreter,也就是用怎样的 Python 环境来运行你的项目。在安装部分,你所建立的每个 Conda 虚拟环境其实都有一个自己独立的 Python Interpreter,你只需要将它们添加进来即可。选择“Add”,并在接下来的窗口选择“Existing Environment”,在 Interpreter 处选择Anaconda安装目录/envs/所需要添加的Conda环境名字/python.exe(Linux下无.exe后缀)并点击“OK”即可。如果选中了“Make available to all projects”,则在所有项目中都可以选择该 Python Interpreter。注意,在 Windows 下 Anaconda 的默认安装目录比较特殊,一般为 C:\Users\用户名\Anaconda3\,即当前 Windows 用户的用户目录下。

对于 TensorFlow 开发而言,PyCharm 的 Professonal 版本非常有用的一个特性是 远程调试 (Remote Debugging)。当你编写程序的终端机性能有限,但又有一台可远程ssh访问的高性能计算机(一般具有高性能 GPU)时,远程调试功能可以让你在终端机编写程序的同时,在远程计算机上调试和运行程序(尤其是训练模型)。你在终端机上对代码和数据的修改可以自动同步到远程机,在实际使用的过程中如同在远程机上编写程序一般,与串流游戏有异曲同工之妙。

不过远程调试对网络的稳定性要求高,如果需要长时间训练模型,建议登录远程机终端直接训练模型(Linux 下可以结合nohup命令 ,让进程在后端运行,不受终端退出的影响)。远程调试功能的具体配置步骤见 PyCharm 文档 。

小技巧

如果你是学生并有 .edu 结尾的邮箱的话,可以在 这里 申请 PyCharm 的免费 Professional 版本授权。

注:申请免费授权

http://www.jetbrains.com/student/

对于 TensorFlow 及深度学习的业余爱好者或者初学者, Visual Studio Code 或者一些在线的交互式 Python 环境(比如免费的 Google Colab )也是不错的选择。Colab 的使用方式可参考 附录 。

注:Visual Studio Code 链接

https://code.visualstudio.com/

Google Colab 链接

https://colab.research.google.com/

关于nohup命令 链接

https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

附录 链接

https://tf.wiki/zh/appendix/cloud.html#colab

TensorFlow所需的硬件配置 *

提示

对于学习而言,TensorFlow 的硬件门槛并不高。甚至,借助免费或灵活的云端计算资源,只要你有一台能上网的电脑,就能够熟练掌握 TensorFlow!

在很多人的刻板印象中,TensorFlow 乃至深度学习是一件非常“吃硬件”的事情,以至于一接触 TensorFlow,第一件事情可能就是想如何升级自己的电脑硬件。不过,TensorFlow 所需的硬件配置很大程度是视任务和使用环境而定的:

对于 TensorFlow 初学者,无需硬件升级也可以很好地学习和掌握 TensorFlow。本手册中的大部分教学示例,大部分当前主流的个人电脑(即使没有 GPU)均可胜任,无需添置其他硬件设备。如果自己的个人电脑难以胜任,可以考虑在云端(例如免费的 Colab )进行模型训练。

对于参加数据科学竞赛(比如 Kaggle)或者经常在本机进行训练的个人爱好者或开发者,一块高性能的 NVIDIA GPU 往往是必要的。CUDA 核心数和显存大小是决定显卡机器学习性能的两个关键参数,前者决定训练速度,后者决定可以训练多大的模型以及训练时的最大 Batch Size,对于较大规模的训练而言尤其敏感。

对于前沿的机器学习研究(尤其是计算机视觉和自然语言处理领域),多 GPU 并行训练是标准配置。为了快速迭代实验结果以及训练更大规模的模型以提升性能,4 卡、8 卡或更高的 GPU 数量是常态。

关于深度学习工作站的具体配置,由于硬件行情更新较快,故不在此列出具体配置,推荐关注 知乎问题 - 如何配置一台适用于深度学习的工作站? ,并结合最新市场情况进行配置。

注:知乎问题 - 如何配置一台适用于深度学习的工作站?

https://www.zhihu.com/question/33996159
本文转载至微信公众号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TensorFlow 2.0 安装指南 的相关文章

随机推荐

  • 树莓派 mqtt

    Mosquitto是一款实现了消息推送协议 MQTT v3 1 的开源消息代理软件 sudo yum y install epel release sudo yum y install mosquitto 运行 sudo systemctl
  • mklink让网盘同步不同文件夹

    mklink简介 Linux 下有一个叫符号链接的东东 是 ln 这个链接命令 mklink 和 ln 的功能几乎一样 在xp系统下 junction命令要用微软开发的小程序 junction exe实现 从http live sysint
  • Chrome插件之CSDN浏览器助手,工欲善其事必先利其器

    1 下载与安装 第一步 官方下载地址 https plugin csdn net utm source chajian contest 1210 顾名思义 在Chrome浏览器上使用 所以 第二步 下载插件打开Chrome浏览器 第三步 输
  • 读取指定文件每行并运行cmd命令

    package com company import java io import java util ArrayList import java util List public class Main public static void
  • DevExpress网格控件(GridView)中增加下拉框和复选框

    本文主要介绍如何在GridControl网格中的每一行增加复选框 下拉框和多选下拉框 最终效果如下图所示 其中 测试模块 模块类型 从属 测试人 测试要求 备注等是数据库查询到的数据 操作步骤 一 添加控件 1 Winform窗口放置一个G
  • html移动端适配最优方法

    使用js来设置font size的方法最好 目前大部分成熟网站都采用这种方法 媒体查询可能会漏掉一些设备型号 并且比较繁琐 通过vw设置也比较方便 但是兼容性不好 js设置html的font size大小 document document
  • OpenSSL SSL_read: Connection was aborted, , errno 10053

    git遇到fatal unable to access https github com xxx xxx OpenSSL SSL read Connection was aborted errno 10053的问题 原因 Git默认限制推送
  • the desired address is beyond limit for this PLC

    问题描述 通过 Java连接西门子PLC S7 1200 学习中 出现错误 the desired address is beyond limit for this PLC 下面是测试代码 S7Connector connector S7C
  • zookeeper基本架构

    要全面了解zookeeper 首先我们得知道什么是zookeeper 能做什么 zookeeper是一个开源的分布式协调服务 主要用于数据订阅 发布 集群管理 配置管理 分布式锁 基本架构 zookeeper基本架构如下 zookeeper
  • angular input_可视化的 Angular 响应式编程

    现代化UI开发中 客户端 前端 一般会进行分层设计 实际用户可感知的 UI 作为顶层 称为视图 View 底层中独立于展示方式的数据结构称为模型 Model 而将两者进行关联的中间层部分 根据划分方式则有很多种定义 例如控制器 Contro
  • thinkPHP6.0入门笔记(五)——数据表字段排序

    thinkPHP6 0实现数据表字段排序 1 利用order方法简单实现 2 URL优化排序 1 利用order方法简单实现 一般情况下排序是交给前端来实现的 后端一般主要是实现数据库的增删查改 但是PHP中经常出现order字段 由于后端
  • cuBLAS【CUDA专门用来解决线性代数运算的库】

    cuBLAS是CUDA专门用来解决线性代数运算的库 分为三个级别 Lev1向量乘向量 Lev2矩阵乘向量 Lev3矩阵乘矩阵 此外 cuBLAS库还包含一些功能和状态结构函数 学习网站为 参考资料 四 cuBLAS与cuDNN
  • mysql 快照和binlog_mysql binlog二进制日志详解

    mysql binlog二进制日志详解 更新时间 2011年10月31日 23 13 00 作者 二进制日志包含了所有更新了数据或者已经潜在更新了数据 例如 没有匹配任何行的一个DELETE 的所有语句 基本概念 定义 二进制日志包含了所有
  • Tcl脚本学习

    包的创建和调用 在tcl脚本中 我们可以通过创建和调用包来增强代码的可复用性 创建包的步骤 1 在包脚本文件中 首先声明 package provide 标识当前文件提供了一个包 之后在该文件中完成包的内容 2 通过pkg mkIndex命
  • element table 表格实现上移、下移

    业务场景 有时候需要前端实现上移和下移功能 代码如下 根据交互形式 我这里是把第一条数据的上移按钮置灰不可点击 disabled scope index 0 最后一条数据下移按钮置灰不可点击 disabled scope index 1 t
  • DCDC输入输出电容的选择和计算(转载)

    文章转自MPS论坛 https forum monolithicpower cn t topic 2105 目前市面上的电容种类繁多 在为我们的电源电路选择输入输出电容的时候难免会挑花了眼 本文就来浅析一下如何选择输入输出电容及其相关的计算
  • 企业运维经典面试题汇总(5)

    1 git和svn 的区别 Git是分布式的 而Svn不是分布的 Git把内容按元数据方式存储 而SVN是按文件 Git没有一个全局版本号 而SVN有 目前为止这是跟SVN相比Git缺少的最大的一个特征 Git的内容的完整性要优于SVN G
  • Qt-窗口嵌套exe

    某些特殊场景 我们要在主程序中嵌套第三方程序 这样臃肿的设计好比 在乡村小楼里面建设一个商业广场 本人不是很喜欢 Qt的QProcess和QWindow可以为我们完成这样的任务 核心思路即 QProcess启动第三方exe 获取进程ID w
  • 各种窗体操作的bug解决

    1 java lang IllegalArgumentException View com android internal policy impl PhoneWindow DecorView 41e0f220 V E R D 0 0 53
  • TensorFlow 2.0 安装指南

    TensorFlow 2 0 beta1 已经发布 本文详细介绍在个人电脑或服务器上安装 TensorFlow 2 0 beta1 的步骤和各种细节 让你第一次安装 TensorFlow 2 0 就上手 一般安装步骤 TensorFlow