PyTorch 深度学习实践 第3讲
第3讲 梯度下降法 源代码
B站 刘二大人 ,传送门PyTorch 深度学习实践 梯度下降法
深度学习算法中,并没有过多的局部最优点。
import matplotlib.pyplot as plt# prepare the training set
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]# initial guess of weight
w = 1.0# define the model linear model y = w*x
def forward(x):return x*w#define the cost function MSE
def cost(xs, ys):cost = 0for x, y in zip(xs,ys):y_pred = forward(x)cost += (y_pred - y)**2return cost / len(xs)# define the gradient function gd
def gradient(xs,ys):grad = 0for x, y in zip(xs,ys):grad += 2*x*(x*w - y)return grad / len(xs)epoch_list = []
cost_list = []
print('predict (before training)', 4, forward(4))
for epoch in range(100):cost_val = cost(x_data, y_data)grad_val = gradient(x_data, y_data)w-= 0.01 * grad_val # 0.01 learning rateprint('epoch:', epoch, 'w=', w, 'loss=', cost_val)epoch_list.append(epoch)cost_list.append(cost_val)print('predict (after training)', 4, forward(4))
plt.plot(epoch_list,cost_list)
plt.ylabel('cost')
plt.xlabel('epoch')
plt.show()
随机梯度下降法 源代码
随机梯度下降法在神经网络中被证明是有效的。效率较低(时间复杂度较高),学习性能较好。
随机梯度下降法和梯度下降法的主要区别在于:
1、损失函数由cost()更改为loss()。cost是计算所有训练数据的损失,loss是计算一个训练数据的损失。对应于源代码则是少了两个for循环。
2、梯度函数gradient()由计算所有训练数据的梯度更改为计算一个训练数据的梯度。
3、本算法中的随机梯度主要是指,每次拿一个训练数据来训练,然后更新梯度参数。本算法中梯度总共更新100(epoch)x3 = 300次。梯度下降法中梯度总共更新100(epoch)次。
import matplotlib.pyplot as pltx_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]w = 1.0def forward(x):return x*w# calculate loss function
def loss(x, y):y_pred = forward(x)return (y_pred - y)**2# define the gradient function sgd
def gradient(x, y):return 2*x*(x*w - y)epoch_list = []
loss_list = []
print('predict (before training)', 4, forward(4))
for epoch in range(100):for x,y in zip(x_data, y_data):grad = gradient(x,y)w = w - 0.01*grad # update weight by every grad of sample of training setprint("\tgrad:", x, y,grad)l = loss(x,y)print("progress:",epoch,"w=",w,"loss=",l)epoch_list.append(epoch)loss_list.append(l)print('predict (after training)', 4, forward(4))
plt.plot(epoch_list,loss_list)
plt.ylabel('loss')
plt.xlabel('epoch')
plt.show()
PyTorch 深度学习实践 第3讲相关推荐
- PyTorch 深度学习实践 第13讲
PyTorch 深度学习实践 第13讲 引言 代码 结果 引言 近期学习了B站 刘二大人的PyTorch深度学习实践,传送门PyTorch 深度学习实践--循环神经网络(高级篇),感觉受益匪浅,发现网 ...
- PyTorch 深度学习实践 第4讲
第4讲 反向传播back propagation 源代码 B站 刘二大人 ,传送门PyTroch 深度学习实践--反向传播 如果需安装PyTorch,传送门 PyTorch深度学习快速入门教程 传送 ...
- PyTorch 深度学习实践 第3讲 反向传播
B站 刘二大人: ch3--反向传播(back propagation) 传送门:https://www.bilibili.com/video/BV1Y7411d7Ys?p=4 一.补充知识: 1. ...
- 《PyTorch深度学习实践》06 逻辑斯蒂回归 代码
视频:06.逻辑斯蒂回归_哔哩哔哩_bilibili 参考文章:pytorch 深度学习实践 第6讲 逻辑斯蒂回归_会游泳的小雁的博客-CSDN博客 网络模型的基本框架 1步骤: 1.Prepare ...
- 【PyTorch深度学习实践 | 刘二大人】B站视频教程笔记
资料 [参考:<PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili] [参考 分类专栏:PyTorch 深度学习实践_错错莫的博客-CSDN博客] 全[参考 分类专栏:PyT ...
- PyTorch 深度学习实践 GPU版本B站 刘二大人第11讲卷积神经网络(高级篇)GPU版本
第11讲 卷积神经网络(高级篇) GPU版本源代码 原理是基于B站 刘二大人 :传送门PyTorch深度学习实践--卷积神经网络(高级篇) 这篇基于博主错错莫:传送门 深度学习实践 第11讲博文 仅在 ...
- 《PyTorch 深度学习实践》第10讲 卷积神经网络(基础篇)
文章目录 1 卷积层 1.1 torch.nn.Conv2d相关参数 1.2 填充:padding 1.3 步长:stride 2 最大池化层 3 手写数字识别 该专栏内容为对该视频的学习记录:[&l ...
- 【Pytorch深度学习实践】B站up刘二大人之SoftmaxClassifier-代码理解与实现(8/9)
这是刘二大人系列课程笔记的倒数第二个博客了,介绍的是多分类器的原理和代码实现,下一个笔记就是basicCNN和advancedCNN了: 写在前面: 这节课的内容,主要是两个部分的修改: 一是数据集: ...
- 【Pytorch深度学习实践】B站up刘二大人课程笔记——目录与索引(已完结)
从有代码的课程开始讨论 [Pytorch深度学习实践]B站up刘二大人之LinearModel -代码理解与实现(1/9) [Pytorch深度学习实践]B站up刘二大人之 Gradient Desc ...
最新文章
- SEO优化如何“搭乘”线上营销推广“列车”?
- 快速在PowerPoint文档中添加图表
- relative会脱离文档流吗_脱离华为之后,高通伸来援手,荣耀40会搭载骁龙888吗?...
- 潘淳的苏州.NET俱乐部成立有感!附我的录音
- Springboot中关于跨域问题的一种解决方法
- WPS快速截图的方法
- 获CNNVD感谢信!知道创宇以专业漏洞研究能力支撑“漏洞通报”业务
- ppt 制作海报 导出高分辨率图片
- 电子邮件传输协议原理简介
- 错误:java 找不到符号
- 渗透测试-网页接口加密暴破
- Android的界面1080,安卓1080P界面设计规范解读
- C语言————输出It‘s a computer中的computer
- Ubuntu 20.04LTS 搜狗输入法不显示图标
- WindowsPhone8 应用开发学习笔记(一)
- 《机器学习 公式推导与代码实现》随书PPT示例
- SoK: The Faults in our ASRs: An Overview of Attacks against Automatic Speech Recognition (题目过长)阅读笔记
- System.gc()的理解
- 在华为云服务器安装libreoffice软件
- 单点登录 ( 踢人模式 )
热门文章
- Transformer课程第39章:面向Knowledge-intensive任务的Transformer模型RAG的架构及完整源码实现
- 【Linux】下打开vim出现【E325】问题
- 【Python编程】九、Python文件操作
- linux bochs安装,ubuntu16.04上安装bochs
- matlab遗传算法工具箱源代码学习
- 关于分享,bshare分享百度分享
- 2018最炙手可热的行业--大数据就业方向和学习路线图详解!
- C++ 第17章 输入、输出和文件(iostream/ostream/fstream)
- 你不得不了解的深度学习知识(二)
- 因素负荷量(factor loadings)的理解