视频学习来源
笔记
环境为 anaconda + python3.7
Keras 线性回归
import kerasfrom keras.layers import Densefrom keras.models import Sequentialimport numpy as npimport matplotlib.pyplot as plt
#设置x的数据值x_data=np.random.rand(100)
np.random.rand(d0,d1,d2……dn)
返回服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1)。
np.random.randn()函数
可以返回服从标准正态分布的随机样本值。
#设置噪声noise=np.random.normal(0,0.01,x_data.shape)
numpy.random.normal(loc=0.0, scale=1.0, size=None)
loc:均值
scale:float 标准差
size:长度。
#构造函数y_data=x_data*0.1+0.2+noise#画出函数plt.scatter(x_data,y_data) #scatter散点图plt.show()
model=Sequential() #建立顺序模型序列model.add(Dense(units=1,input_dim=1))#输入维度为1,输出维度为1 添加一个网络层 输入维度为1,输出维度为1 model.compile(optimizer='sgd',loss='mse') #设置SGD优化模型,#训练,迭代步为3001次。for step in range(3001): cost=model.train_on_batch(x_data,y_data) #batch 为每次训练的批次 if step%500 ==0: print('cost:',cost) #每500次输出一次#打印权值和偏置值w,b=model.layers[0].get_weights()print("w:",w,"b:",b)
#生成预测值y_pred=model.predict(x_data)plt.scatter(x_data,y_data)plt.plot(x_data,y_pred,'r-',lw=3) #红色,长度为3plt.show()