🤖 TensorFlow 入门指南
TensorFlow
是由 Google 开发的开源机器学习框架,广泛用于构建和训练神经网络,尤其适合深度学习任务。
✅ TensorFlow 能解决什么问题?
应用方向 | 示例任务 | 场景描述 |
---|---|---|
图像识别 | 手写数字分类、人脸识别 | 安防、医疗、制造等行业 |
自然语言 | 情感分析、文本分类、翻译 | 语音助手、搜索引擎 |
时间序列 | 股票预测、传感器分析 | 金融、工业物联网 |
强化学习 | 自动驾驶、游戏AI | 智能控制、策略优化 |
自定义模型 | 任何可微分的模型训练 | 科研、学术、企业AI应用 |
📦 安装
pip install tensorflow
🚀 基本使用示例:实现线性回归模型
1️⃣ 导入模块并准备数据
导入 tensorflow 为 tf
导入 numpy 为 np
X = np.array([1, 2, 3, 4], dtype=np.float32)
y = np.array([2, 4, 6, 8], dtype=np.float32)
2️⃣ 创建简单模型
模型 = tf.keras.Sequential([
tf.keras.layers.Dense(1, 输入形状=[1])
])
3️⃣ 编译模型
模型.编译(
优化器="sgd",
损失="均方误差"
)
4️⃣ 训练模型
模型.拟合(X, y, 训练周期=500, 输出日志=假)
5️⃣ 使用模型预测
预测 = 模型.预测([10.0])
打印(预测)
🧱 构建神经网络结构
模型 = tf.keras.Sequential([
tf.keras.layers.Dense(64, 激活函数='relu'),
tf.keras.layers.Dense(10, 激活函数='softmax')
])
🧠 模型训练流程总结
阶段 | 内容 |
---|---|
构建 | 使用 Sequential 或函数式API |
编译 | 设置优化器、损失函数、指标 |
拟合 | 使用 .fit() 喂入数据训练 |
预测 | 使用 .predict() 推理 |
评估 | 使用 .evaluate() 验证性能 |
🧰 常用组件一览
模块 | 用途 |
---|---|
tf.keras | 高层 API:模型、层、训练流程 |
tf.data | 数据集创建与预处理 |
tf.function | 将函数编译为图模式加速执行 |
tf.GradientTape | 自动求导和反向传播 |
tf.keras.callbacks | 训练过程控制(早停、保存等) |
📦 示例:多分类神经网络(手写数字 MNIST)
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()
X_train, X_test = X_train/255.0, X_test/255.0
模型 = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
模型.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
模型.fit(X_train, y_train, epochs=5)
模型.evaluate(X_test, y_test)