WSL2 中构建/安装 TensorFlow
时间: 2025-05-12 21:32:02 浏览: 18
### WSL2 安装配置 TensorFlow 构建教程
在 Windows Subsystem for Linux (WSL2) 环境下构建或安装 TensorFlow 是一种常见的方法,尤其是在需要 GPU 加速的情况下。以下是详细的说明:
#### 1. 配置 WSL2 和更新内核
为了确保 WSL2 正常运行并支持最新的功能,首先需要确认已安装最新版本的 WSL2 并更新其内核。
- 更新 Win10 的 WSL2 内核可以通过 Microsoft Store 下载最新版本[^2]。
- 如果手动操作,则可以下载官方发布的 `.msi` 文件来完成升级。
#### 2. 设置开发环境
一旦 WSL2 被正确设置,下一步就是准备用于 TensorFlow 编译和使用的开发环境。
- **安装必要的依赖项**
在 Ubuntu 或其他基于 Debian 的发行版中,通过以下命令安装基础工具包:
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential cmake git pkg-config zip g++ zlib1g-dev unzip python3-pip wget curl nano vim
```
- **Python 环境管理**
推荐使用 `virtualenv` 创建独立的 Python 环境以避免冲突。
```bash
pip3 install --upgrade virtualenv
mkdir ~/tf_env && cd ~/tf_env
virtualenv tf_wsl_env
source tf_wsl_env/bin/activate
```
#### 3. 使用预编译二进制文件安装 TensorFlow
对于大多数用户来说,直接从 PyPI 获取 TensorFlow 已经满足需求。
- 对于 CPU-only 版本:
```bash
pip install tensorflow
```
- 若需启用 DirectML 插件加速(替代 CUDA),则额外安装插件模块:
```bash
pip install tensorflow-directml-plugin
```
#### 4. 自定义编译 TensorFlow (可选)
如果特定硬件架构或者优化选项未被默认发布版本覆盖,可以选择自行编译 TensorFlow。
- 克隆源码仓库:
```bash
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout v2.4.0 # 替换为目标版本号
```
- 准备 bazel 构建器以及相关组件:
```bash
sudo apt-get install openjdk-11-jdk-headless
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
sudo apt update && sudo apt install bazel
```
- 执行实际编译过程前先调整参数适配目标平台特性[^3]:
```bash
./configure
bazel build --config=v2 //tensorflow/tools/pip_package:build_pip_package
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip uninstall -y tensorflow
pip install /tmp/tensorflow_pkg/*.whl
```
#### 5. 测试安装成功与否
验证 TensorFlow 是否正常工作及其设备可用情况:
```python
import tensorflow as tf
print(tf.__version__)
device_name = tf.test.gpu_device_name()
if device_name != '/device:GPU:0':
raise SystemError('GPU device not found')
print(f'Found GPU at: {device_name}')
```
---
阅读全文