Linux安装Tensorflow2
假如你不幸和曾经的我一样,需要将TF2安装在非官撑的其他平台,那你还有两种方法可以去尝试,一种是借助docker,将环境部署在容器里;如果你需要更多更高级的配置,完全可以通过Dockerfile以及docker compose来实现,这里就不赘述了。章节三中的源代码构建方式更多的用途是基于TF2源码进行解析及二次开发,而通过docker方式进行部署或测试要比打包成PIP包的形式来的更加方便。假如你
该篇文章最初写于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 |
看似覆盖很广泛对吧,但是:
- MacOS无论任何版本都不支持GPU
- 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包的形式来的更加方便。
更多推荐
所有评论(0)