切换视频源:

可视化结果 回归例子

作者: C.Cui 编辑: 莫烦 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... 结构来避免我们第一次没有被删除的目标。

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

3_3_1.gif

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

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

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)

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

降低知识传递的门槛

莫烦的对教育的态度是: 降低知识传递的门槛,不希望给"学习"设置金钱障碍。 这是我花大量业余时间贡献 免费 AI分享的原因。 通过 【赞助】 能及时让我看到你对 【莫烦态度】 的认同,我也更有理由坚持下去。

如果你当前目标是找工作或者转行AI,想接受更加丰富的教学资源、培训辅导体验,我想推荐我的朋友 七月在线 给你, 通过这个 【莫烦Python为你提供的注册链接】, 你将可以获得莫烦专门为你协商的课程优惠券。祝你找/换工作顺利~