TensorFlow简单的线性回归任务

如何使用 TensorFlow 和 Keras 创建、训练并进行预测

[1. 数据准备与预处理](#1. 数据准备与预处理)

[2. 构建模型](#2. 构建模型)

[3. 编译模型](#3. 编译模型)

[4. 训练模型](#4. 训练模型)

[5. 评估模型](#5. 评估模型)

[6. 模型应用与预测](#6. 模型应用与预测)

[7. 保存与加载模型](#7. 保存与加载模型)

8.完整代码


1. 数据准备与预处理

我们将使用一个简单的线性回归问题,其中输入特征 x 和标签 y 之间存在线性关系。我们创建一个训练数据集,并将标签设置为输入特征的两倍加上一些噪声。

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

# 创建训练数据,x 是输入特征,y 是标签(y = 2 * x + 噪声)
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype=float)  # 输入数据
y = 2 * x + np.random.normal(0, 1, size=x.shape)  # 标签数据,加一些噪声

2. 构建模型

我们使用一个简单的神经网络来进行线性回归。这个网络只有一个全连接层,激活函数是线性的。

复制代码
model = tf.keras.Sequential([
    tf.keras.layers.Dense(units=1, input_dim=1, activation='linear')  # 线性激活函数
])

3. 编译模型

使用 SGD 优化器和均方误差损失函数,适合线性回归问题。

复制代码
model.compile(optimizer='sgd', loss='mean_squared_error')

4. 训练模型

训练模型时,我们设置 1000 个训练周期,并传入数据 x 和标签 y

复制代码
model.fit(x, y, epochs=1000)

5. 评估模型

训练结束后,我们评估模型的表现,使用 evaluate 函数来查看损失值。

复制代码
loss = model.evaluate(x, y)
print(f"模型的损失值:{loss}")

6. 模型应用与预测

训练完成后,我们使用 model.predict() 来进行预测。你可以将新的输入数据传入模型,得到预测结果。

复制代码
# 使用模型进行预测
new_x = np.array([11, 12, 13, 14, 15], dtype=float)
predictions = model.predict(new_x)

print("新的输入数据预测结果:")
print(predictions)

7. 保存与加载模型

你还可以保存和加载训练好的模型,以便在未来使用。\

复制代码
# 保存模型
model.save('linear_model.keras')

# 加载模型
loaded_model = tf.keras.models.load_model('linear_model.keras')

# 使用加载的模型进行预测
loaded_predictions = loaded_model.predict(new_x)
print("加载的模型预测结果:")
print(loaded_predictions)

8.完整代码

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

# 创建训练数据,x 是输入特征,y 是标签(y = 2 * x + 噪声)
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype=float)
y = 2 * x + np.random.normal(0, 1, size=x.shape)

# 构建模型
model = tf.keras.Sequential([
    tf.keras.layers.Dense(units=1, input_dim=1, activation='linear')  # 线性激活函数
])

# 编译模型
model.compile(optimizer='sgd', loss='mean_squared_error')

# 训练模型
model.fit(x, y, epochs=1000)

# 评估模型
loss = model.evaluate(x, y)
print(f"模型的损失值:{loss}")

# 使用模型进行预测
new_x = np.array([11, 12, 13, 14, 15], dtype=float)
predictions = model.predict(new_x)

print("新的输入数据预测结果:")
print(predictions)

# 保存模型
model.save('linear_model.keras')

# 加载模型
loaded_model = tf.keras.models.load_model('linear_model.keras')

# 使用加载的模型进行预测
loaded_predictions = loaded_model.predict(new_x)
print("加载的模型预测结果:")
print(loaded_predictions)
相关推荐
HavenlonLabs8 分钟前
Havenlon 对抗性完整(十七):安全不是“防住攻击”,而是控制失败方式
网络·人工智能·架构·安全威胁分析·安全架构·havenlon
leoZ23110 分钟前
Claude 全面解析:从基础原理到实战应用指南
人工智能·游戏
doiito(Do It Together)15 分钟前
media_agent 进化之路:把 Gliding Horse 的 Agent 超能力注入 ComfyUI,让图片生成自己“学会”优化
人工智能·架构·rust·knowledge graph
Code_Artist17 分钟前
Trae AI 创造力大赛创意作品:AI 数字克隆人——让你有无数个分身!
人工智能·llm·aigc
涛声依旧-底层原理研究所25 分钟前
Agent 长任务可靠性设计:实现暂停、恢复、续跑与崩溃重启的完整方案
人工智能·python·系统架构
AC赳赳老秦32 分钟前
防火墙规则批量配置实战:OpenClaw 自动生成模板、批量下发与合规性校验全解析
java·开发语言·人工智能·python·github·php·openclaw
8Qi844 分钟前
HelloAgents:RAG——让 Agent 学会检索知识
人工智能·llm·agent·ai编程·vibecoding
触底反弹1 小时前
🔥 从点积到 Transformer:我终于搞懂大模型是怎么"猜"出下一个词的了
人工智能·机器学习·架构
Token炼金师1 小时前
算力显存通信的三角博弈:DP/TP/PP/SP、ZeRO、混合精度与稳定性 —— 训练优化四件套
人工智能·深度学习·dp·sp·pp·zero·tp
无糖可可果1 小时前
MCP(Model Context Protocol)学习分享:从理论到实践
人工智能