TensorFlow从入门到理解(六):可视化梯度下降
运行代码:
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3DLR = 0.1
REAL_PARAMS = [1.2, 2.5]
INIT_PARAMS = [[5, 4],[5, 1],[2, 4.5]][2]x = np.linspace(-1, 1, 200, dtype=np.float32) # x datay_fun = lambda a, b: np.sin(b*np.cos(a*x))
tf_y_fun = lambda a, b: tf.sin(b*tf.cos(a*x))noise = np.random.randn(200)/10
y = y_fun(*REAL_PARAMS) + noise # target# tensorflow graph
a, b = [tf.Variable(initial_value=p, dtype=tf.float32) for p in INIT_PARAMS]
pred = tf_y_fun(a, b)
mse = tf.reduce_mean(tf.square(y-pred))
train_op = tf.train.GradientDescentOptimizer(LR).minimize(mse)a_list, b_list, cost_list = [], [], []
with tf.Session() as sess:sess.run(tf.global_variables_initializer())for t in range(400):a_, b_, mse_ = sess.run([a, b, mse])a_list.append(a_); b_list.append(b_); cost_list.append(mse_) # record parameter changesresult, _ = sess.run([pred, train_op]) # training# visualization codes:
print('a=', a_, 'b=', b_)
plt.figure(1)
plt.scatter(x, y, c='b') # plot data
plt.plot(x, result, 'r-', lw=2) # plot line fitting
# 3D cost figure
fig = plt.figure(2); ax = Axes3D(fig)
a3D, b3D = np.meshgrid(np.linspace(-2, 7, 30), np.linspace(-2, 7, 30)) # parameter space
cost3D = np.array([np.mean(np.square(y_fun(a_, b_) - y)) for a_, b_ in zip(a3D.flatten(), b3D.flatten())]).reshape(a3D.shape)
ax.plot_surface(a3D, b3D, cost3D, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'), alpha=0.5)
ax.scatter(a_list[0], b_list[0], zs=cost_list[0], s=300, c='r') # initial parameter place
ax.set_xlabel('a'); ax.set_ylabel('b')
ax.plot(a_list, b_list, zs=cost_list, zdir='z', c='r', lw=3) # plot 3D gradient descent
plt.show()
运行结果:
转载于:https://www.cnblogs.com/darklights/p/9939339.html
TensorFlow从入门到理解(六):可视化梯度下降相关推荐
- 可视化深入理解损失函数与梯度下降 | 技术头条
作者 | Hugegene 译者 | 刘畅 责编 | Rachel 出品 | AI科技大本营(id:rgznai100) [导语]本文对梯度函数和损失函数间的关系进行了介绍,并通过可视化方式进行了详细 ...
- 【机器学习基础】(二):理解线性回归与梯度下降并做简单预测
预测从瞎猜开始 按上一篇文章所说,机器学习是应用数学方法在数据中发现规律的过程.既然数学是对现实世界的解释,那么我们回归现实世界,做一些对照的想象. 想象我们面前有一块塑料泡沫做的白板,白板上分布排列 ...
- TensorFlow 2.0 - 张量/自动求导/梯度下降
文章目录 1. 张量 2. 自动求导.梯度下降 学习于:简单粗暴 TensorFlow 2 1. 张量 import tensorflow as tf print(tf.__version__) # ...
- 直观理解神经网络和梯度下降
来张图吧 Repeat{ for j=1 to m{ theta_i = theta_i - alpha * J'(theta) # 这个就是上面写的更新公式 } } 好了这个和神经网络的反向传播啥关 ...
- 梯度的直观理解_梯度下降最直观的理解
最近在学习机器学习,入门第一课就是「梯度下降」.看了不少教程都没有很好地理解,直到看到下面这篇文章,算是通俗易懂地理解了. 作者:六尺帐篷 链接:https://www.jianshu.com/p/c ...
- 线性回归之梯度下降详解
在了解梯度下降(Gradient Descent)之前,我们先要知道有关线性回归的基本知识,这样可以进一步的加深对梯度下降的理解,当然梯度下降(Gradient Descent)并不单单只能进行回归预 ...
- 图解梯度下降背后的数学原理
https://www.toutiao.com/a6672898771514294796/ 敏捷在软件开发过程中是一个非常著名的术语,它背后的基本思想很简单:快速构建一些东西,然后得到一些反馈,根据反 ...
- 最优化方法:梯度下降(批梯度下降和随机梯度下降)
http://blog.csdn.net/pipisorry/article/details/23692455 梯度下降法(Gradient Descent) 梯度下降法是一个一阶最优化算法,通常也称 ...
- 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_浅谈随机梯度下降amp;小批量梯度下降...
机器学习三要素 上次的报告中,我们介绍了一种用于求解模型参数的迭代算法--梯度下降法.首先需要明确一点,即"梯度下降算法"在一个完整的统计学习流程中,属于什么?根据<统计学习 ...
最新文章
- TVM如何训练TinyML
- SDUT OJ[3109] 买买买 背包 dp
- java中字符串的截取
- java 字节的复制_JAVA中字节流复制文件
- 使用泛型解决之前的问题
- 黑盒法测试c语言,黑盒测试用例练习题.pdf
- 【渝粤教育】国家开放大学2018年秋季 1087t数学分析专题研究 参考试题
- oracle无效的关联运算符,菜鸟请教:关联操作符=>用法
- linux乌班图中文输入法,Ubuntu Linux怎么安装中文输入法
- c# image转换为bitmap,C# - 转换WPF Image.source到System.Drawing.Bitmap
- 两车相撞的力怎么计算_两车都向中间并线时相撞 算谁的责任
- 保存最大的前20项暴力--Heritage of skywalkert
- NUXT.JS原理简述
- java 实现魔兽搜索器 魔兽对战平台
- 计算机网络陈晴,最新计算机网络专业参考文献 计算机网络专业参考文献怎么写...
- 【引用】DMA内存申请--dma_alloc_coherent
- 二:统计基础:描述统计
- Pairwise(FCC算法)
- 计算机主板用料,揭开用料谜团 教你怎样看主板的质量
- 简单的popupwindow提示框
热门文章
- python数据结构与算法第10讲_Python数据结构与算法10:基本结构:练习题1
- windows脚本bat批处理 关闭显示器 关闭显示器脚本bat
- Android常见界面布局(详细介绍)
- 顺序执行命令需要哪个符号链接_18年MBA联考如何安排答题时间及顺序
- @Transactional注解的几个参数--事务传播控制--事务隔离级别--异常与回滚
- c语言报刊杂志订阅系统,中国报刊杂志大全_报刊大全_报刊杂志订阅
- python 30个小代码_30个Python常用极简代码,拿走就用
- 晓庄2019c语言真题卷,南京晓庄学院—C语言期末考试复习提纲
- python pil怎么调用_python3如何使用pil
- 怎么使用计算机算法,浅谈如何在用计算机来更好的实现Floyd算法