2026-05-26 23:39:32
TensorFlow 是由谷歌于2015年开伍滑源的端到端机器学习框架,支持图像识别、自然语言处理等任务。以下是学习 TensorFlow 的完整指南:
一、安装与配置环境准备
系统要求:支持 Windows、Linux 和 macOS。
Python 版本:建议使用 Python 3.7 至 3.10。
硬件支持:配备 NVIDIA GPU 并安装 CUDA 和 cuDNN 库以加速训练。
安装步骤
创建虚拟环境(可选):
python -m venv tf_envsource tf_env/bin/activate # Windows: tf_envScriptsactivate升级 pip:
pip install --upgrade pip安装 TensorFlow:
CPU 版本:
pip install tensorflowGPU 版本:
pip install tensorflow-gpu验证安装:
import tensorflow as tfprint(tf.__version__)若输出版本号,说明安装成功。
张量(Tensor)
多维数组,维度称为秩(rank):
标量:0 维张量
向量:1 维张量
矩阵:2 维张量
更高维度的张量
计算图(Computational Graph)
由节点(操作)和边(数据流)组成,支持并行和分布式计算。
变量与常量
变量(Variable):可训练参数(如权重和偏置)。
常量(Constant):固定不变的值。
会话(Session)
TensorFlow 1.x 需要会话运行计算图,TensorFlow 2.x 引入急切执行(Eager Execution),无需显式创建会话。
自动微分(Auto-diff)
自动计算梯度,简化模型训练。腔键腊
导亮斗入库:
import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt准备数据:
X = np.random.rand(100, 1)y = 3 * X + 2 + np.random.randn(100, 1) * 0.1plt.scatter(X, y)plt.xlabel('X')plt.ylabel('y')plt.title('Linear Regression Data')plt.show()构建模型:
model = tf.keras.Sequential([ tf.keras.layers.Dense(units=1, input_shape=[1])])编译模型:
model.compile(optimizer='sgd', loss='mean_squared_error')训练模型:
history = model.fit(X, y, epochs=100, verbose=0)评估模型:
weights, bias = model.layers[0].get_weights()print(f'权重: {weights[0][0]}, 偏置: {bias[0]}')predictions = model.predict(X)plt.scatter(X, y, label='真实值')plt.plot(X, predictions, color='red', label='预测值')plt.xlabel('X')plt.ylabel('y')plt.title('Linear Regression Result')plt.legend()plt.show()张量操作:
a = tf.constant([[1, 2], [3, 4]])b = tf.constant([[5, 6], [7, 8]])c = tf.add(a, b) # 矩阵相加d = tf.matmul(a, b) # 矩阵相乘print(c, d)自动微分:
w = tf.Variable(3.0)b = tf.Variable(2.0)def loss(x, y): return w * x + b - ywith tf.GradientTape() as tape: current_loss = loss(3.0, 10.0)dw, db = tape.gradient(current_loss, [w, b])print(f'梯度 - dw: {dw}, db: {db}')自定义模型与层:
class MyModel(tf.keras.Model): def __init__(self): super(MyModel, self).__init__() self.dense1 = tf.keras.layers.Dense(10, activation='relu') self.dense2 = tf.keras.layers.Dense(1) def call(self, inputs): x = self.dense1(inputs) return self.dense2(x)model = MyModel()model.compile(optimizer='adam', loss='mean_squared_error')数据管道:
dataset = tf.data.Dataset.from_tensor_slices((X, y))dataset = dataset.shuffle(buffer_size=100).batch(32).repeat()for batch_x, batch_y in dataset.take(2): print(batch_x, batch_y)模型保存与加载:
model.save('my_model')loaded_model = tf.keras.models.load_model('my_model')导入库与数据:
import tensorflow as tffrom tensorflow.keras import layers, modelsimport matplotlib.pyplot as pltmnist = tf.keras.datasets.mnist(train_images, train_labels), (test_images, test_labels) = mnist.load_data()train_images = train_images / 255.0test_images = test_images / 255.0构建模型:
model = models.Sequential([ layers.Flatten(input_shape=(28, 28)), layers.Dense(128, activation='relu'), layers.Dropout(0.2), layers.Dense(10, activation='softmax')])编译模型:
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])训练模型:
history = model.fit(train_images, train_labels, epochs=5, validation_data=(test_images, test_labels))评估模型:
test_loss, test_acc = model.evaluate(test_images, test_labels)print(f'测试准确率: {test_acc}')通过以上步骤,你可以掌握 TensorFlow 的基础操作和高级功能,并能够构建和训练简单的机器学习模型。继续探索 TensorFlow 的更多功能,如卷积神经网络(CNN)、循环神经网络(RNN)等,可以进一步提升你的模型开发能力。