【Keras学习笔记】线性回归
前面学习了如何开发环境搭建,
https://blog.csdn.net/tiantangmoke/article/details/149812331?spm=1001.2014.3001.5502
现在继续学习一个简单的模型训练过程
完整代码
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(0,100,30)
y = 3*x+7+np.random.randn(30)*6
x
y
plt.scatter(x,y)
model = keras.Sequential()
from tensorflow.keras import layers
model.add(layers.Dense(1,input_dim=1))
model.summary()
model.compile(optimizer='adam',loss='mse') #编译模型
model.fit(x,y,epochs=3000) #训练模型
model.predict(x)
plt.scatter(x,y)
plt.plot(x,model.predict(x))
一、环境配置
import numpy as np
导入科学计算库NumPy,并简写为np。NumPy是Keras/TensorFlow的基础依赖库,提供高效的数组(张量)操作能力。
import matplotlib.pyplot as plt
导入Matplotlib的绘图模块,简写为plt。用于数据可视化和模型分析。
如果报错需要安装matplotlib
pip install matplotlib
%matplotlib inline
Jupyter Notebook的魔法命令,将Matplotlib的绘图结果直接嵌入Notebook单元格下方显示,而非弹出独立窗口
二、准备训练数据
x = np.linspace(0,100,30)
使用 NumPy 的 linspace() 在区间 [0, 100] 内生成 30 个等间隔的数值
y = 3*x+7+np.random.randn(30)
y = 3*x+7 模拟一条斜率为 3、截距为 7 的理想直线
np.random.randn(30) 可以生成 30 个符合标准正态分布(均值=0,标准差=1) 的随机噪声值
plt.scatter(x,y)

三、建立模型
以下构建了最简单的线性回归模型,数学意义等价于 y=wx+b
model = keras.Sequential()
建立一个线性堆叠的神经网络框架(层与层直接相连)
from tensorflow.keras import layers
引入层构建模块(Dense/Conv2D等),tensorflow.keras表明使用TF集成的Keras
model.add(layers.Dense(1,input_dim=1))
创建含1个神经元的全连接层,声明输入维度为1(单特征输入)
model.summary()
打印网络架构图,显示参数总量和每层计算特性
四、编译并训练模型
model.compile(optimizer=‘adam’,loss=‘mse’)
optimizer=‘adam’ 指定使用 Adam优化算法
loss=‘mse’ 指定使用 均方误差损失函数
model.fit(x,y,epochs=3000)
这行代码的作用是 执行模型训练,让模型从数据中学习
x:输入特征数据(前文生成的30个样本)
y:目标值数据(3*x+7+噪声)
epochs=3000:指定训练轮数为3000次
五、验证训练结果
model.predict(x)

plt.scatter(x,y) plt.plot(x,model.predict(x))

可能是训练的次数还不够,预测的有些偏了
更多推荐

所有评论(0)