前期分享了使用tensorflow来进行神经网络的回归,tensorflow构建神经网络
本期我们来使用Keras来搭建一个简单的神经网络
Keras神经网络可以用来模拟回归问题 (regression),例如给下面一组数据,用一条线来对数据进行拟合,并可以预测新输入 x 的输出值,也就是线性回归问题(Y=w*X+b)
1创建随机数据import numpy as np
np.random.seed(1337) models.Sequential,用来一层一层的建立神经层
from keras.layers import Dense 可视化模块
数据随机化
Y = 0.5 * X + 2 + np.random.normal(0, 0.05, (300, ))
train 前 260 data points
X_test, Y_test = X[260:], Y[260:] 39;mse&39;sgd& 参数中,误差函数用的是 mse 均方误差;优化器用的是 sgd 随机梯度下降法
以上3行代码便是keras神经网络的搭建过程(比tensorflow减少了很多),构建完成神经网络后,开始训练
keras神经网络训练for step in range(401):
cost = model.train_on_batch(X_train, Y_train)
if step % 100 == 0:
print(&39;, cost)
&39;&39;&39;
训练400步,每100步打印一下训练的结果,使用model.train_on_batch 一批一批的训练 X_train, Y_train
keras 神经网络的验证使用 model.evaluate,输入测试集的x和y, 输出 cost,weights 和 biases。其中 weights 和 biases 是取在模型的第一层 model.layers[0] 学习到的参数
从训练的结果看出, weights 比较接近0.5,bias 接近 2,符合我们输入的模型
cost = model.evaluate(X_test, Y_test, batch_size=40)
print(&39;, cost)
W, b = model.layers[0].get_weights()
print(&39;, W, &39;, b)
40/40 [==============================] - 0s 450us/step
test cost: 0.003141355235129595
Weights= [[0.51579475]]
biases= [1.9971616]
可视化模型验证完成后,我们可以可视化模型,看看神经网络预测的数据与实际数据的差异
Y_pred = model.predict(X_test)
plt.scatter(X_test, Y_test)
plt.plot(X_test, Y_pred)
plt.show()
以上便是keras构建回归神经网络的步骤,我们下期分享一下如何使用keras构建分类模型的神经网络
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除
热门信息
阅读 ()
1 注册微信号怎么注册第二个阅读 ()
2 怎么把照片变成卡通头像阅读 ()
3 手机越充越少电怎么解决