绘制散点图
import numpy as npimport kerasimport matplotlib.pyplot as pltfrom keras.models import Sequentialfrom keras.layers import Densex_data = np.random.rand(100)noise = np.random.normal(0,0.01,x_data.shape)y_data = x_data * 0.2 + 0.2 + noise# 显示为散点图plt.scatter(x_data,y_data)plt.show()

# 构建顺序模型model = Sequential()# 添加输出1维 输入1维的连接层model.add(Dense(units=1,input_dim=1))# sgd 随机梯度下降优化方法 mse 均方误差model.compile(optimizer='sgd',loss='mse')# 训练500次 分批次 因为数据不是很大 干脆每批次寻来拿所有数据for i in tqdm(range(500)):# train_on_batch 返回cost = model.train_on_batch(x_data,y_data)w, b = model.layers[0].get_weights()print('W:',w)print('B:',b)print(cost)# 预测y_pred = model.predict(x_data)# 显示预测结果plt.scatter(x_data,y_data)plt.plot(x_data,y_pred,'r-',lw=3)plt.show()# 打印误差均值lost = y_pred-y_datalost = np.where(lost>=0,lost,-lost)print(np.mean(lost))
100%|███████████████████████████████████████████████████████████████████████████████████| 500/500 [00:00<00:00, 1316.41it/s]W: [[0.5304257]] # 准确值 0.2B: [0.02314443] # 准确值 0.20.0086114080.13317464181891447
训练500次
可以看出拟合的不是很理想 考虑增加次数
训练3000次

W: [[0.20160742]]B: [0.20000617]0.000106331550.06449628744867321
