TensorFlow 安装与使用全攻略:从入门到实战

前言

TensorFlow 是一个开源的机器学习框架,具有强大的计算能力和灵活的架构,适用于各种深度学习任务。本文将详细介绍 TensorFlow 在 Linux(Ubuntu)、Windows 系统下的安装方法,以及源码编译安装和使用 Docker 容器安装的方式。同时,还将展示如何使用预训练模型进行图像预测,帮助读者快速上手 TensorFlow。

环境准备

  • 硬件要求:支持 AVX 指令集的 CPU(推荐 GPU 加速,需安装 CUDA 和 cuDNN)
  • 操作系统:Ubuntu 16.04/18.04 或 Windows 10/11
  • Python 版本:3.5~3.9(TensorFlow 2.x 要求 Python 3.7+)

Linux (Ubuntu) 安装 TensorFlow

方法一:原生 pip 安装

  1. 安装 pip
   sudo apt update
   sudo apt install python3-pip python3-dev
  1. 安装 TensorFlow
   # CPU 版本
   pip3 install tensorflow

   # GPU 版本(需先安装 CUDA 和 cuDNN)
   pip3 install tensorflow-gpu
  1. 清华镜像加速(国内用户推荐):
   pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow
  1. 验证安装
   import tensorflow as tf
   print(tf.__version__)  # 输出 TensorFlow 版本

方法二:Virtualenv 隔离环境

  1. 安装 Virtualenv
   sudo pip3 install virtualenv
  1. 创建虚拟环境
   virtualenv --system-site-packages -p python3 ~/tensorflow
  1. 激活环境
   source ~/tensorflow/bin/activate
  1. 安装 TensorFlow
   pip install tensorflow
  1. 退出环境
   deactivate

方法三:Docker 容器安装

  1. 安装 Docker
   sudo apt install docker.io
   sudo systemctl enable docker
   sudo systemctl start docker
  1. 拉取 TensorFlow 镜像
   docker pull tensorflow/tensorflow:latest-py3
  1. 运行容器
   docker run -it -p 8888:8888 tensorflow/tensorflow:latest-py3
  1. 进入 Jupyter Notebook
    容器启动后,复制输出的 URL 到浏览器访问,使用 token 登录。

Windows 安装 TensorFlow

方法一:原生 pip 安装

  1. 安装 Python
    - 官网下载 Python 3.6+(64 位版本)
    - 安装时勾选 Add Python to PATH

  2. 安装 TensorFlow

   pip install tensorflow
  1. 验证安装
   import tensorflow as tf
   print(tf.__version__)

方法二:Docker 容器安装

  1. 安装 Docker Desktop
    - 从 Docker 官网 下载安装
    - 启动 Docker 服务

  2. 拉取镜像并运行

   docker pull tensorflow/tensorflow:latest-py3
   docker run -it -p 8888:8888 tensorflow/tensorflow:latest-py3

方法三:Windows Subsystem for Linux (WSL)

  1. 安装 WSL
    - 启用 WSL 功能后安装 Ubuntu 子系统
    - 参照 Linux 安装步骤操作

源码编译安装(进阶)

1. 安装依赖

sudo apt install git python3-dev python3-pip build-essential
sudo pip3 install numpy wheel

2. 安装 Bazel

# 下载 Bazel 安装脚本
wget https://github.com/bazelbuild/bazel/releases/download/4.2.2/bazel-4.2.2-installer-linux-x86_64.sh
chmod +x bazel-4.2.2-installer-linux-x86_64.sh
./bazel-4.2.2-installer-linux-x86_64.sh --user

3. 编译 TensorFlow

# 克隆源码
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

# 配置编译选项
./configure
# 选择 Python 路径、是否启用 GPU 等

# 编译 CPU 版本
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

# 生成 pip 包
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

# 安装生成的 whl 文件
sudo pip install /tmp/tensorflow_pkg/tensorflow-*.whl

测试 TensorFlow

简单测试代码

import tensorflow as tf

# 创建计算图
hello = tf.constant('Hello, TensorFlow!')
a = tf.constant(10)
b = tf.constant(20)

# 运行计算图
with tf.Session() as sess:
    print(sess.run(hello))
    print(sess.run(a + b))  # 输出 30

图像分类测试(使用预训练模型)

  1. 下载预训练模型
   wget http://download.tensorflow.org/models/mobilenet_v1_1.0_224_quantized_2018_04_27.tar.gz
   tar -xvf mobilenet_v1_1.0_224_quantized_2018_04_27.tar.gz
  1. 预测代码
   import tensorflow as tf
   from PIL import Image
   import numpy as np

   def load_image(img_path):
       img = Image.open(img_path).resize((224, 224))
       img = np.array(img) / 255.0 - 0.5
       return img[np.newaxis, :]  # 添加 batch 维度

   # 加载模型
   interpreter = tf.lite.Interpreter(model_path="mobilenet_v1_1.0_224_quantized.tflite")
   interpreter.allocate_tensors()

   # 获取输入输出张量
   input_details = interpreter.get_input_details()
   output_details = interpreter.get_output_details()

   # 运行预测
   img = load_image("test.jpg")
   interpreter.set_tensor(input_details[0]['index'], img)
   interpreter.invoke()
   output = interpreter.get_tensor(output_details[0]['index'])
   print(np.argmax(output))  # 输出预测类别

常见问题解决

  1. AVX 指令集不支持
    - TensorFlow 1.14+ 要求 AVX 指令集,老 CPU 需安装低版本:
   pip install tensorflow==1.13.1
  1. GPU 安装失败
    - 检查 CUDA 版本(TensorFlow 2.0 需 CUDA 10.1+)
    - 安装对应版本 cuDNN

  2. Docker 镜像拉取慢
    - 使用国内镜像源:

   docker pull docker.mirrors.ustc.edu.cn/tensorflow/tensorflow

总结

本文覆盖了 TensorFlow 在 Linux 和 Windows 系统的多种安装方式,从简单的 pip 安装到复杂的源码编译,满足不同场景需求。通过测试代码和预训练模型示例,读者可以快速验证安装并开始深度学习实践。后续可结合具体项目(如图像分类、NLP)进一步深入学习 TensorFlow 的高级功能。


参考资料
1. TensorFlow 官方安装指南
2. Bazel 官方文档
3. Docker Hub TensorFlow 镜像
4. 清华开源软件镜像站

Xiaoye