- Python深度学习:基于TensorFlow(第2版)
- 吴茂贵 王冬等
- 486字
- 2025-02-20 06:37:25
1.7 用NumPy实现回归实例
前面我们介绍了NumPy的属性及各种操作,对如何使用NumPy数组有了一定认识。下面我们将分别用NumPy、TensorFlow实现同一个机器学习任务,比较它们之间的异同及优缺点,从而加深对TensorFlow的理解。
我们用最原始的NumPy实现有关回归的一个机器学习任务。这种方法的代码可能有点多,但每一步都是透明的,有利于理解每一步的工作原理。主要步骤分析如下。
首先,给出一个数组x,然后基于表达式y=3x2+2,加上一些噪声数据,到达另一组数据y。
然后,构建一个机器学习模型,学习表达式y=wx2+b的两个参数w、b。数组x、y的数据为训练数据。
最后,采用梯度下降法,通过多次迭代,学习后得出w、b的值。
以下为具体实现步骤。
1)导入需要的库。

2)生成输入数据x及目标数据y。
设置随机数种子,生成同一份数据,以便用多种方法进行比较。

3)查看x、y的分布情况。

运行结果如图1-11所示。

图1-11 NumPy实现的源数据
4)初始化权重参数。


5)训练模型。
定义损失函数,假设批量大小为100:

对损失函数求导:

利用梯度下降法学习参数,学习率为lr。

用代码实现上面这些表达式:

6)可视化结果。

运行结果如下,效果如图1-12所示。


图1-12 可视化NumPy学习结果
从结果看来,学习效果还是比较理想的。