python3 20.用keras进行简单的线性回归 学习笔记

前言

     计算机视觉系列之学习笔记主要是本人进行学习人工智能(计算机视觉方向)的代码整理。本系列所有代码是用python3编写,在平台Anaconda中运行实现,在使用代码时,默认你已经安装相关的python库,这方面不做多余的说明。本系列所涉及的所有代码和资料可在我的github上下载到,gitbub地址:https://github.com/mcyJacky/DeepLearning-CV,如有问题,欢迎指出。

一、构建线性模型数据

     下面通过随机构造一些噪声点来构建线性模型数据:

import keras
import numpy as np
import matplotlib.pyplot as plt
# Sequential按顺序构成的模型
from keras.models import Sequential
# Dense全连接层
from keras.layers import Dense

# 使用numpy生成100个随机点
x_data = np.random.rand(100)
noise = np.random.normal(0,0.01, x_data.shape)
y_data = x_data*0.1 + 0.2 + noise

# 显示随机点
plt.scatter(x_data, y_data)
plt.show()

     模型结果显示如下图1.1所示:

图1.1 线性模型数据

二、构建线性回归线

     下面通过keras进行数据训练来构建以上线性模拟数据的线性回归线:

# 构建一个顺序模型
model = Sequential()
# 在模型中添加一个全连接层
model.add(Dense(units=1, input_dim=1))

# sgd:Stochastic gradient descent,随机梯度下降法
# mse:Mean Squared Error,均方误差
model.compile(optimizer='sgd', loss='mse')

# 训练3001个批次
for step in range(3001):
    # 每次训练一个批次
    cost = model.train_on_batch(x_data, y_data)
    # 每500个batch打印一次cost值
    if step % 500 == 0:
        print('cost:',cost)

# 打印权值和偏置值
W, b = model.layers[0].get_weights()
print('W:',W, 'b:',b)

# x_data输入网络中,得到预测值y_pred
y_pred = model.predict(x_data)

# 显示随机点
plt.scatter(x_data, y_data)
# 显示预测结果
plt.plot(x_data,y_pred, 'r-', lw=3)
plt.show()
#打印输出结果:
# cost: 0.07504755
# cost: 0.00012301958
# cost: 9.6758755e-05
# cost: 8.9504254e-05
# cost: 8.750017e-05
# cost: 8.694659e-05
# cost: 8.679362e-05
# W: [[0.09975886]] b: [0.20087716]

     由训练打印结果可知,通过模型训练回归线的斜率和截距近似于我们定义线性模型数据的斜率和截距。模型训练结果显示如下图2.1所示,由线性回归结果红色线可直观看出,回归拟合效果较好。

图2.1 线性回归结果

     
     
     
     
【参考】:
     1. 城市数据团课程《AI工程师》计算机视觉方向
     2. deeplearning.ai 吴恩达《深度学习工程师》
     3. 《机器学习》作者:周志华
     4. 《深度学习》作者:Ian Goodfellow


转载声明:
版权声明:非商用自由转载-保持署名-注明出处
署名 :mcyJacky
文章出处:https://blog.csdn.net/mcyJacky

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值