TensorFlow 是一个由 Google 开发的开源机器学习框架,广泛应用于深度学习模型的构建和训练。对于初学者来说,从安装 TensorFlow 到构建并运行第一个神经网络是一个重要的起点。本文将详细介绍 TensorFlow 的安装过程,并通过一个简单的神经网络实战案例帮助你快速上手。
在安装 TensorFlow 前,确保你的系统满足以下条件:
使用 venv
创建虚拟环境:
python -m venv tf_env
激活虚拟环境:
tf_env\Scripts\activate
source tf_env/bin/activate
安装最新版本的 TensorFlow:
pip install tensorflow
如果需要 GPU 支持,请确保安装了兼容的 CUDA 和 cuDNN 库,然后安装 GPU 版本的 TensorFlow:
pip install tensorflow-gpu
运行以下代码验证 TensorFlow 是否成功安装:
import tensorflow as tf
print("TensorFlow version:", tf.__version__)
print("Is GPU available:", tf.test.is_gpu_available())
如果输出版本号且 GPU 可用性正确显示,则安装成功。
我们将通过一个简单的分类任务来演示如何使用 TensorFlow 构建神经网络。具体任务是基于 MNIST 数据集对手写数字进行分类。
import tensorflow as tf
from tensorflow.keras import layers, models
import matplotlib.pyplot as plt
MNIST 数据集包含 28x28 像素的手写数字图像,标签为 0 到 9。
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 归一化像素值到 [0, 1]
x_train, x_test = x_train / 255.0, x_test / 255.0
我们使用 Keras API 构建一个简单的全连接神经网络。
model = models.Sequential([
layers.Flatten(input_shape=(28, 28)), # 将输入展平为一维向量
layers.Dense(128, activation='relu'), # 全连接层,128 个神经元
layers.Dropout(0.2), # Dropout 层防止过拟合
layers.Dense(10, activation='softmax') # 输出层,10 个类别
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
history = model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print(f"Test accuracy: {test_acc}")
plt.plot(history.history['accuracy'], label='train_accuracy')
plt.plot(history.history['val_accuracy'], label='val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.show()
GradientTape
实现反向传播。flowchart TD A[加载数据] --> B[归一化数据] B --> C[构建模型] C --> D[编译模型] D --> E[训练模型] E --> F[评估模型]