视频源:

可视化结果 回归例子

作者: C.Cui 编辑: UnityTutorial 2016-11-03

学习资料:

matplotlib 可视化

接着上一节课的内容,这一小节,我们将要对我们建立的神经网络模型的输出结果在不同的训练阶段可视化(visualization)。 建筑和训练神经网络的步骤和上次内容一样, 不同的是, 这次我们要有可视化的效果。 我们在这里引入了matplotlib这个工具包, 用来绘图及数据可视化。 大家可以利用我的视频教程来学习或复习Matplotlib这个工具:Matplotlib 数据可视化神器 Python

在训练开始前,我们重新画一下我们的目标数据:也就是我们要不断的刷新我们神经网络的输出值prediction_value

# plot the real data
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x_data, y_data)
plt.ion()
plt.show()

现在我们开始真正的训练啦!我们要把神经网络训练1000次,同时呢,每训练50次更新一下图片的显示:

for i in range(1000):
    # training
    err = train(x_data, y_data)
    if i % 50 == 0:
        # to visualize the result and improvement
        try:
            ax.lines.remove(lines[0])
        except Exception:
            pass
        prediction_value = predict(x_data)
        # plot the prediction
        lines = ax.plot(x_data, prediction_value, 'r-', lw=5)
        plt.pause(.5)

此处,ax.lines.remove(lines[0]) 的作用是删除我们之前画的红线。这里我们采用try... catch... 结构来避免我们第一次没有被删除的目标。

你大概会得到以下的类似结果:

可视化结果 回归例子

结果显示我们的神经网络在一点一点的逼近我们的目标函数, 换句话说也就是说 神经网络在逐步的学习样本的原始分布。

当然,只需要简单的修改代码,你就可以看最终的训练结果:

for i in range(1000):
    # training
    err = train(x_data, y_data)
     
prediction_value = predict(x_data)
# plot the prediction
lines = ax.plot(x_data, prediction_value, 'r-', lw=5)

在下一节看课程,我们将学习如何利用神经网络来解决简单的分类问题。

分享到: Facebook 微博 微信 Twitter
如果你觉得这篇文章或视频对你的学习很有帮助, 请你也分享它, 让它能再次帮助到更多的需要学习的人. UnityTutorial没有正式的经济来源, 如果你也想支持 UnityTutorial 并看到更好的教学内容, 赞助他一点点, 作为鼓励他继续开源的动力.

支持 让教学变得更优秀