本文档旨在提供一个详细的步骤,指导您在没有GPU的Ubuntu VPS上安装和配置TensorFlow CPU开发环境。本指南假设您已购买一台配置适中(例如4GB内存,80GB磁盘)的VPS,并安装了Ubuntu系统。
注意: 本指南主要针对CPU版本的TensorFlow安装,因为VPS通常不配备GPU。如果您有GPU,请查阅官方文档以获取GPU版本的安装说明。
首先,更新您的系统软件包列表并升级已安装的软件包到最新版本,这有助于避免潜在的兼容性问题。
sudo apt update && sudo apt upgrade -y
安装一些常用的开发工具,如build-essential(编译工具)、wget、curl(下载工具)、git(版本控制)和software-properties-common(管理软件源)。
sudo apt install build-essential wget curl git software-properties-common -y
Ubuntu通常预装了Python3,但我们还需要安装pip(Python包管理器)、python3-dev(开发头文件,用于编译某些Python包)和python3-venv(用于创建虚拟环境)。
sudo apt install python3 python3-pip python3-dev python3-venv -y
确认Python3已正确安装。
python3 --version
在您的用户主目录下创建一个用于存放TensorFlow项目的文件夹,并进入该目录。
mkdir ~/tensorflow_project
cd ~/tensorflow_project
强烈建议为您的TensorFlow项目创建一个独立的Python虚拟环境。这可以避免不同项目之间的包冲突,并保持系统Python环境的清洁。
python3 -m venv tf_env
在每次开始开发或使用TensorFlow时,都需要激活虚拟环境。
source tf_env/bin/activate
激活后,您的终端提示符前会显示虚拟环境的名称(例如 (tf_env))。
在虚拟环境中,升级pip到最新版本,以确保可以安装最新的Python包。
pip install --upgrade pip
安装一些常用的科学计算库,它们是许多数据科学和机器学习项目的基础。
pip install numpy scipy pandas matplotlib pydot
由于您的VPS没有GPU,我们安装专为CPU优化的TensorFlow版本。
pip install tensorflow-cpu
如果您希望使用Jupyter Notebook进行交互式开发,请安装它。
pip install jupyter
安装scikit-learn,这是一个流行的机器学习库。
pip install scikit-learn
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设备。
为了减少TensorFlow的冗余输出信息,并明确禁用CUDA(GPU),您可以设置以下环境变量。这些设置将添加到您的~/.bashrc文件中,以便在每次登录时自动加载。
echo 'export TF_CPP_MIN_LOG_LEVEL=3' >> ~/.bashrc
echo 'export CUDA_VISIBLE_DEVICES=-1' >> ~/.bashrc
source ~/.bashrc
TF_CPP_MIN_LOG_LEVEL=3: 禁用所有TensorFlow C++级别的日志输出,只显示错误信息。CUDA_VISIBLE_DEVICES=-1: 明确告诉TensorFlow不使用任何CUDA设备(即GPU)。Graphviz是一个开源图可视化软件。TensorFlow有时会利用它来可视化模型结构(例如通过tf.keras.utils.plot_model),因此安装它会很有用。
sudo apt install graphviz
htop 是一个交互式的进程查看器,可以方便地监控CPU、内存和进程使用情况。
sudo apt install htop -y
zip 和 unzip 是常用的文件压缩和解压缩工具。
sudo apt install zip unzip -y
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=...。
您可以使用以下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开发环境。祝您开发愉快!