TensorFlow学习

1、概述

谷歌开发的开源机器学习框架,高效、便捷地实现神经网络。

TensorFlow把前向传播、反向传播、参数更新这些复杂容易出错的底层步骤全部封装起来了,只需调用简洁的API,就能完成模型的搭建和训练。

2、学习

神经网络的核心三层:输入层(接数据)、隐藏层(学特征)、输出层(给结果)

输入层 接收原始数据

隐藏层 提取数据特征

输出层 给出最终结果

层级 核心作用 房价预测场景举例
输入层 接收原始数据("喂给模型的原材料") 面积、卧室数、楼层、房龄等房价相关特征
隐藏层 提取数据特征("模型思考、分析的核心") 计算 "面积 × 楼层" 的价值、"房龄越老价格越低" 等规律
输出层 给出最终结果("模型的答案") 预测出的具体房价(比如 100 万、150 万)

神经网络里的前向传播和反向传播

前向传播(模型预测结果过程)

从输入层→隐藏层→输出层,算出预测结果。

示例:

反向传播(学习和纠错)

从输出层→隐藏层,根据预测值和真实值的偏差,修改每层的参数(权重 W、偏置 b),让模型预测越来越准。

示例:

如果不用TensorFlow,代码可能是这样的,容易出错、复杂:

python 复制代码
import numpy as np

# 手动定义参数
W1 = np.random.randn(2, 10)  # 输入→隐藏层权重
b1 = np.random.randn(10)     # 隐藏层偏置
W2 = np.random.randn(10, 1)  # 隐藏→输出层权重
b2 = np.random.randn(1)      # 输出层偏置
learning_rate = 0.001        # 学习率

# 前向传播
def forward(x):
    hidden = np.maximum(0, np.dot(x, W1) + b1)  # ReLU激活
    output = np.dot(hidden, W2) + b2
    return hidden, output

# 手动反向传播(计算梯度+更新参数)
def backward(x, y, hidden, output):
    global W1, b1, W2, b2
    # 1. 计算输出层梯度
    loss = output - y
    dW2 = np.dot(hidden.T, loss)
    db2 = np.sum(loss, axis=0)
    # 2. 计算隐藏层梯度
    dhidden = np.dot(loss, W2.T)
    dhidden[hidden <= 0] = 0  # ReLU梯度
    dW1 = np.dot(x.T, dhidden)
    db1 = np.sum(dhidden, axis=0)
    # 3. 手动更新参数
    W2 -= learning_rate * dW2
    b2 -= learning_rate * db2
    W1 -= learning_rate * dW1
    b1 -= learning_rate * db1

# 训练(还要写循环、数据迭代...)
x = np.array([[80, 2]])
y = np.array([[80]])
hidden, output = forward(x)
backward(x, y, hidden, output)

使用TensorFlow,代码框架如下,简洁只需调用API:

python 复制代码
import tensorflow as tf
import numpy as np

# 构建顺序模型(层按顺序堆叠)
model = tf.keras.Sequential([
    # 隐藏层:10个神经元,ReLU激活,输入层为2个特征
    tf.keras.layers.Dense(10, activation='relu', input_shape=(2,)),
    # 输出层:1个神经元(回归任务,无激活函数)
    tf.keras.layers.Dense(1)
])

# 配置训练规则:Adam优化器,MSE损失函数(回归任务)
model.compile(optimizer='adam', loss='mse')

# 准备训练数据(特征:面积/卧室数;标签:真实房价)
x_train = np.array([[80, 2]])
y_train = np.array([[80]])

# 训练模型:10轮(自动完成前向+反向传播、参数更新)
model.fit(x_train, y_train, epochs=10)

# 预测:输入90㎡/3卧室,输出预测房价
test_data = np.array([[90, 3]])
pred_price = model.predict(test_data)
print(f"预测房价:{pred_price[0][0]:.2f} 万")

实际demo测试

在智能体中编写提示词就可以了,智能体会用tensorflow生成代码的

神经网络模型-早停

模型训练过程中,监控特定指标(验证集的损失率),当这个指标在一定数量的训练轮次内不再改善时,就停止训练,防止模型过拟合。在训练集上表现的很好,在实际数据上表现的很差。

模型训练参数epochs

最大训练轮数,示例中整个训练数据集会被模型最大学习100轮。

1个epoch = 模型把训练集里的所有样本(比如:500条数据)都向前传播 + 向后传播一遍

神经网络与传统机器学习相比 有什么区别??是不是神经网络可以完全替代传统机器学习??

可以自己豆包查下,以下是我查的:

我记住的就是数据量的区别。

特征 传统机器学习 神经网络
特征工程 高度依赖人工 自动学习特征
模型结构 固定,复杂度有限 灵活,可扩展性强,复杂度高
数据量需求 中小规模数据即可 通常需要大规模数据
计算资源 需求较低 需求巨大,常需 GPU/TPU
可解释性 较好 较差,常为黑盒
典型应用场景 结构化数据、小数据集、需解释性 非结构化数据、大数据集、高性能
相关推荐
独角鲸网络安全实验室4 分钟前
惊魂零点击!OpenClaw漏洞(ClawJacked)突袭,开发者AI Agent遭无声劫持
人工智能·网络安全·数据安全·漏洞·openclaw·clawjacked·cve-2026-25253
嘎嘎嘎嘎降8 分钟前
保姆级教程:25个降AI提示词大全,手把手教你去AI味
人工智能·去ai味提示词大全·降ai提示词·降ai指令·deepseek降ai
irizhao10 分钟前
《高质量数据集 质量评测规范》(TC609-5-2025-04)
人工智能·分类·数据挖掘
zero159710 分钟前
SpecCoding:规范驱动开发的工具与方法论全解析
人工智能·ai智能体
monsion11 分钟前
Code Agent 的上下文压缩:不是 zip,而是工作记忆管理
大数据·人工智能
杜子不疼.13 分钟前
OpenClaw横空出世:星标榜第一的AI Agent框架凭什么引爆2026?
人工智能
A小码哥20 分钟前
ARC-AGI-2:抽象推理与泛化能力的终极测试
人工智能·agi
梯度下降中21 分钟前
LoRA原理精讲
人工智能·算法·机器学习
晚秋贰拾伍27 分钟前
科技周刊08-微博上线国内社交平台首个AI社区
人工智能·科技
小陈工32 分钟前
2026年3月28日技术资讯洞察:5G-A边缘计算落地、低延迟AI推理革命与工业智造新范式
开发语言·人工智能·后端·python·5g·安全·边缘计算