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 |
| 可解释性 | 较好 | 较差,常为黑盒 |
| 典型应用场景 | 结构化数据、小数据集、需解释性 | 非结构化数据、大数据集、高性能 |