TensorFlow CPU 开发环境安装指南

本文档旨在提供一个详细的步骤,指导您在没有GPU的Ubuntu VPS上安装和配置TensorFlow CPU开发环境。本指南假设您已购买一台配置适中(例如4GB内存,80GB磁盘)的VPS,并安装了Ubuntu系统。

注意: 本指南主要针对CPU版本的TensorFlow安装,因为VPS通常不配备GPU。如果您有GPU,请查阅官方文档以获取GPU版本的安装说明。

一、系统准备

1. 更新系统

首先,更新您的系统软件包列表并升级已安装的软件包到最新版本,这有助于避免潜在的兼容性问题。

sudo apt update && sudo apt upgrade -y

2. 安装基础开发工具

安装一些常用的开发工具,如build-essential(编译工具)、wgetcurl(下载工具)、git(版本控制)和software-properties-common(管理软件源)。

sudo apt install build-essential wget curl git software-properties-common -y

二、Python 环境配置

1. 安装 Python3 和 pip

Ubuntu通常预装了Python3,但我们还需要安装pip(Python包管理器)、python3-dev(开发头文件,用于编译某些Python包)和python3-venv(用于创建虚拟环境)。

sudo apt install python3 python3-pip python3-dev python3-venv -y

2. 验证 Python 版本

确认Python3已正确安装。

python3 --version

3. 创建项目目录

在您的用户主目录下创建一个用于存放TensorFlow项目的文件夹,并进入该目录。

mkdir ~/tensorflow_project
cd ~/tensorflow_project

4. 创建虚拟环境

强烈建议为您的TensorFlow项目创建一个独立的Python虚拟环境。这可以避免不同项目之间的包冲突,并保持系统Python环境的清洁。

python3 -m venv tf_env

5. 激活虚拟环境

在每次开始开发或使用TensorFlow时,都需要激活虚拟环境。

source tf_env/bin/activate

激活后,您的终端提示符前会显示虚拟环境的名称(例如 (tf_env))。

6. 升级 pip

在虚拟环境中,升级pip到最新版本,以确保可以安装最新的Python包。

pip install --upgrade pip

三、TensorFlow 及其依赖安装

1. 安装基础科学计算包

安装一些常用的科学计算库,它们是许多数据科学和机器学习项目的基础。

pip install numpy scipy pandas matplotlib pydot

2. 安装 tensorflow-cpu

由于您的VPS没有GPU,我们安装专为CPU优化的TensorFlow版本。

pip install tensorflow-cpu

3. Jupyter Notebook (如果需要)

如果您希望使用Jupyter Notebook进行交互式开发,请安装它。

pip install jupyter

4. 其他常用数据科学工具

安装scikit-learn,这是一个流行的机器学习库。

pip install scikit-learn

四、环境验证与配置

1. 创建测试脚本 test_tf.py

创建一个Python脚本来验证TensorFlow是否正确安装并能正常工作。

~/tensorflow_project 目录下创建 test_tf.py 文件,并粘贴以下内容:

import tensorflow as tf
print("TensorFlow version:", tf.__version__)
print("TensorFlow is built with CUDA:", tf.test.is_built_with_cuda())
print("Available devices:", tf.config.list_physical_devices())

保存文件后,在激活的虚拟环境中运行:

python test_tf.py

您应该能看到TensorFlow的版本信息,is_built_with_cuda() 应该返回 False,并且 Available devices 应该只显示CPU设备。

2. 注册环境变量,设置日志级别

为了减少TensorFlow的冗余输出信息,并明确禁用CUDA(GPU),您可以设置以下环境变量。这些设置将添加到您的~/.bashrc文件中,以便在每次登录时自动加载。

echo 'export TF_CPP_MIN_LOG_LEVEL=3' >> ~/.bashrc
echo 'export CUDA_VISIBLE_DEVICES=-1' >> ~/.bashrc
source ~/.bashrc

五、常用辅助工具安装

1. 安装 Graphviz

Graphviz是一个开源图可视化软件。TensorFlow有时会利用它来可视化模型结构(例如通过tf.keras.utils.plot_model),因此安装它会很有用。

sudo apt install graphviz

2. 安装内存监控工具

htop 是一个交互式的进程查看器,可以方便地监控CPU、内存和进程使用情况。

sudo apt install htop -y

3. 安装压缩工具

zipunzip 是常用的文件压缩和解压缩工具。

sudo apt install zip unzip -y

4. 安装系统监控工具

sysstat 包含了多种系统性能监控工具,如 sar(系统活动报告器),对于长期性能分析很有帮助。

sudo apt install sysstat -y

六、虚拟环境使用提示

激活虚拟环境: 每次开始使用TensorFlow时,请务必激活您的虚拟环境。

source ~/tensorflow_project/tf_env/bin/activate

退出虚拟环境: 当您完成工作后,可以退出虚拟环境。

deactivate

运行 Jupyter Notebook: 如果您安装了Jupyter Notebook,并希望在VPS上通过浏览器访问,请在激活虚拟环境后运行以下命令。--ip=0.0.0.0 允许从任何IP访问,--port=8888 指定端口,--no-browser 防止它尝试在VPS上打开浏览器。

jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser

运行后,Jupyter会提供一个带有token的URL,您可以在本地浏览器中访问 http://您的VPS_IP地址:8888/?token=...

七、TensorFlow CPU 性能基准测试

您可以使用以下Python脚本来测试TensorFlow在您的VPS CPU上的浮点计算能力(GFLOPS)。此脚本通过执行矩阵乘法来衡量性能。

~/tensorflow_project 目录下创建 cpu_benchmark.py 文件,并粘贴以下内容:

import tensorflow as tf
import time
import numpy as np

def cpu_benchmark(matrix_size=1000, iterations=10):
    # 禁用GPU,强制使用CPU
    tf.config.set_visible_devices([], 'GPU')
    
    # 创建两个随机矩阵
    matrix_a = tf.random.normal([matrix_size, matrix_size])
    matrix_b = tf.random.normal([matrix_size, matrix_size])
    
    # 预热 (第一次计算通常较慢,不计入性能)
    _ = tf.matmul(matrix_a, matrix_b)
    
    # 开始计时
    start_time = time.time()
    
    # 进行多次矩阵乘法运算
    for _ in range(iterations):
        _ = tf.matmul(matrix_a, matrix_b)
    
    # 计算总时间
    total_time = time.time() - start_time
    
    # 计算每次运算的平均时间
    avg_time = total_time / iterations
    
    # 计算每秒浮点运算次数 (FLOPS)
    # 对于 N x N 矩阵乘法,浮点运算次数约为 2 * N^3
    flops = 2 * (matrix_size ** 3)
    flops_per_sec = flops / avg_time
    
    return {
        'matrix_size': matrix_size,
        'iterations': iterations,
        'total_time': total_time,
        'avg_time_per_iteration': avg_time,
        'gflops': flops_per_sec / 1e9  # 转换为GFLOPS
    }

# 运行基准测试
sizes = [500, 1000, 2000] # 可以根据VPS性能调整矩阵大小
print("--- TensorFlow CPU 性能基准测试 ---")
for size in sizes:
    print(f"\n测试矩阵大小: {size}x{size}")
    # 迭代次数可以根据需要调整,确保有足够的计算量
    results = cpu_benchmark(matrix_size=size, iterations=5) 
    print(f"总耗时: {results['total_time']:.2f} 秒")
    print(f"每次迭代平均时间: {results['avg_time_per_iteration']:.2f} 秒")
    print(f"性能: {results['gflops']:.2f} GFLOPS")
print("\n----------------------------------")

保存文件后,在激活的虚拟环境中运行:

python cpu_benchmark.py

这将输出不同矩阵大小下的CPU浮点运算性能。

至此,您已成功在Ubuntu VPS上搭建了TensorFlow CPU开发环境。祝您开发愉快!