Linux安装Tensorflow2

该篇文章最初写于2019年,那时Tensorflow尚还有小半壁江山,且安装并不复杂;但在2023年这个时间点,Pytorch已成为绝对的王者,最新依赖bazel编译的tf2实在是既难装又难用,生生把自己作死到只有一些次级学科或领域还在用它,比如生物领域…不过有需求就还有生命,还是给大家介绍下最新tf2的几种安装方式

一、PIP直接安装

我们打开TF2的官方文档:官网 , 里面开头即说明了支持直接通过的环境:

系统python
Win7及以上Python 3.6–3.9
macOS 10.12.6 (Sierra) 或更高Python 3.6–3.9
Ubuntu 16.04及以上Python 3.6–3.9

看似覆盖很广泛对吧,但是:

  1. MacOS无论任何版本都不支持GPU
  2. Linux这么多发行版,谷歌只官撑一个Ubuntu

更不用提什么WSL,开发板,统统是不关心,不支持,真有你的Google

当然,假如你幸运地是在上述平台运行TF2,你可以直接通过两行代码来进行安装,前提是你以确认GPU、CUDA、CuDNN依赖已安装完毕并版本匹配:

pip install --upgrade pip
pip install tensorflow

然后通过一段python代码来确认TF2是否以安装成功:

import tensorflow as tf
version=tf.__version__  #输出tensorflow版本
gpu_ok=tf.test.is_gpu_available()  #输出gpu可否使用(True/False)
print("tf version:",version,"\nuse GPU:",gpu_ok)
tf.test.is_built_with_cuda()  # 判断CUDA是否可用(True/False)

二、Docker镜像安装

假如你不幸和曾经的我一样,需要将TF2安装在非官撑的其他平台,那你还有两种方法可以去尝试,一种是借助docker,将环境部署在容器里;另一种是从源代码直接编译。这里我们先从简单的docker开始

1. 安装docker和nvidia-docker

请参考我之前的博客——Ubuntu 20.04 LTS 配置Docker

请注意一定要确保nvidia-docker安装成功,否则会导致容器创建错误

2. 拉取镜像并创建容器

Google提供了一个配置好的镜像,只需通过如下两行:

 docker pull tensorflow/tensorflow:latest  # Download latest stable image
 docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter  # Start Jupyter server 

即可以jupyter notebook的形式启用tf。如果你需要更多更高级的配置,完全可以通过Dockerfile以及docker compose来实现,这里就不赘述了

三、源代码编译

假如最不幸的,你既不能直接安装tf2,又无法搭建docker服务;或者要学习tf2的源码,修改某些内置功能的实现方式,那就只能选择从源码编译这条路,好在这并不算特别复杂,仅仅需要5小步:

1. 安装python和依赖

下面这行代码适用于你不使用conda等包管理器,而是直接在系统中构建python,一般来说并不推荐。假如你使用包管理器,直接创建一个环境即可

sudo apt install python3-dev python3-pip

在环境中安装如下依赖,请确保使用的PIP版本高于19.0

pip install -U --user pip numpy wheel
pip install -U --user keras_preprocessing --no-deps

2. Bazel

我们需要借鉴如下页面:
https://docs.bazel.build/versions/3.7.0/install-redhat.html

3. 查看需要下载的源码版本并编译

在这里插入图片描述

在这里插入图片描述

请事先对应python、构建工具、CUDA和CuDNN的版本,然后使用Git获取TF2源码:

git clone -b r*.* https://github.com/tensorflow/tensorflow.git
cd tensorflow

r*.中的 * 指的是上图对应tf版本号的前两位

然后运行:

./configure

通过运行 TensorFlow 源代码树根目录下的 ./configure 配置系统 build。此脚本会提示您指定 TensorFlow 依赖项的位置,并要求指定其他构建配置选项

4. 构建PIP软件包

bazel build --config=cuda [--config=option] //tensorflow/tools/pip_package:build_pip_package

构建成功的软件包会被存储在/tmp/tensorflow_pkg中, 软件包名 tensorflow-version-tags.whl

5. 安装构建好的软件包

pip install /tmp/tensorflow_pkg/tensorflow-version-tags.whl

这时理论上TF2已安装完毕,可以使用前述测试代码进行测试

四、从源码构建docker镜像

章节三中的源代码构建方式更多的用途是基于TF2源码进行解析及二次开发,而通过docker方式进行部署或测试要比打包成PIP包的形式来的更加方便。

  • 10
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值