前面学习了如何开发环境搭建,
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))

在这里插入图片描述

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐