前言
计算机视觉系列之学习笔记主要是本人进行学习人工智能(计算机视觉方向)的代码整理。本系列所有代码是用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所示:
二、构建线性回归线
下面通过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所示,由线性回归结果红色线可直观看出,回归拟合效果较好。
【参考】:
1. 城市数据团课程《AI工程师》计算机视觉方向
2. deeplearning.ai 吴恩达《深度学习工程师》
3. 《机器学习》作者:周志华
4. 《深度学习》作者:Ian Goodfellow
转载声明:
版权声明:非商用自由转载-保持署名-注明出处
署名 :mcyJacky
文章出处:https://blog.csdn.net/mcyJacky