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 安装¶
- 安装 pip:
sudo apt update
sudo apt install python3-pip python3-dev
- 安装 TensorFlow:
# CPU 版本
pip3 install tensorflow
# GPU 版本(需先安装 CUDA 和 cuDNN)
pip3 install tensorflow-gpu
- 清华镜像加速(国内用户推荐):
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow
- 验证安装:
import tensorflow as tf
print(tf.__version__) # 输出 TensorFlow 版本
方法二:Virtualenv 隔离环境¶
- 安装 Virtualenv:
sudo pip3 install virtualenv
- 创建虚拟环境:
virtualenv --system-site-packages -p python3 ~/tensorflow
- 激活环境:
source ~/tensorflow/bin/activate
- 安装 TensorFlow:
pip install tensorflow
- 退出环境:
deactivate
方法三:Docker 容器安装¶
- 安装 Docker:
sudo apt install docker.io
sudo systemctl enable docker
sudo systemctl start docker
- 拉取 TensorFlow 镜像:
docker pull tensorflow/tensorflow:latest-py3
- 运行容器:
docker run -it -p 8888:8888 tensorflow/tensorflow:latest-py3
- 进入 Jupyter Notebook:
容器启动后,复制输出的 URL 到浏览器访问,使用 token 登录。
Windows 安装 TensorFlow¶
方法一:原生 pip 安装¶
-
安装 Python:
- 官网下载 Python 3.6+(64 位版本)
- 安装时勾选 Add Python to PATH -
安装 TensorFlow:
pip install tensorflow
- 验证安装:
import tensorflow as tf
print(tf.__version__)
方法二:Docker 容器安装¶
-
安装 Docker Desktop:
- 从 Docker 官网 下载安装
- 启动 Docker 服务 -
拉取镜像并运行:
docker pull tensorflow/tensorflow:latest-py3
docker run -it -p 8888:8888 tensorflow/tensorflow:latest-py3
方法三:Windows Subsystem for Linux (WSL)¶
- 安装 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
图像分类测试(使用预训练模型)¶
- 下载预训练模型:
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
- 预测代码:
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)) # 输出预测类别
常见问题解决¶
- AVX 指令集不支持:
- TensorFlow 1.14+ 要求 AVX 指令集,老 CPU 需安装低版本:
pip install tensorflow==1.13.1
-
GPU 安装失败:
- 检查 CUDA 版本(TensorFlow 2.0 需 CUDA 10.1+)
- 安装对应版本 cuDNN -
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. 清华开源软件镜像站