1 | from tensorflow import keras |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#构建一个顺序模型
model=Sequential()
#在模型中添加一个全连接层
model.add(Dense(units=1,input_dim=1))#units是输出维度
#编译模型
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()
输出结果: 1
2
3
4
5
6
7
8cost: 0.04835104
cost: 0.00014408033
cost: 0.00010225594
cost: 9.2460454e-05
cost: 9.016635e-05
cost: 8.962906e-05
cost: 8.9503264e-05
W: [[0.10286073]] b: [0.198199]