PyTorch深度学习实践 3.梯度下降算法-->mini-batch stochastic gradient descent

本文主要是介绍PyTorch深度学习实践 3.梯度下降算法-->mini-batch stochastic gradient descent,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分治法

w1和w2
假设横竖都是64
横竖都分成4份,一共16份。
第一次在这16份里,找出比较小的点,
再来几轮,基本就OK了。
从原来的16x16变成了16+16
在这里插入图片描述

贪心法

梯度下降法,局部最优,实际上,大家发现神经网络里并没有很多的局部最优点

鞍点g=0,无法迭代了
在这里插入图片描述
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as pltxxl=0.01w=1.0# 定义模型
def forward(x):return x*wdef cost(xs,ys):cost=0for x,y in zip(xs,ys):y_prediction=forward(x)cost+=(y_prediction-y)**2return cost/len(xs)def gradient(xs,ys):grad=0for x,y in zip(xs,ys):y_prediction = forward(x)grad+=2 * x * (y_prediction - y)return grad/len(xs)# 定义训练集
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]print('Prediciton(before training)',4,forward(4))for epoch in range(100):cost_val=cost(x_data,y_data)grad=gradient(x_data,y_data)w=w-xxl*gradprint("progress:",epoch,"w=",w,"loss=",cost_val)
print('Prediction(after training)',4,forward(4))

在这里插入图片描述

指数加权均值,更平滑
在这里插入图片描述
一定要收敛,发散说明失败了,可能是学习率太大

在这里插入图片描述
随机梯度下降,可以克服鞍点
在这里插入图片描述
在这里插入图片描述

项目速度效果(鞍点)
梯度下降快(因为可以并行 xi和xi+1的函数值无关)
随机梯度下降慢(只能串行,因为w与上一个有关)

所以折中
批量随机梯度下降batch
mini-batch stochastic gradient descent
在这里插入图片描述

# 随机梯度下降
import numpy as np
import matplotlib.pyplot as pltxxl=0.01w=1.0# 定义模型
def forward(x):return x*wdef Loss_Function(x,y):y_prediction=forward(x)return (y_prediction-y)**2def gradient(x,y):y_prediction = forward(x)return 2 * x *(y_prediction-y)# 定义训练集
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]print('Prediciton(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-xxl*gradprint('\tgradient:',x,y,grad)l=Loss_Function(x,y)print("progress:",epoch,"w=",w,"loss=",l)
print('Prediction(after training)',4,forward(4))

在这里插入图片描述

这篇关于PyTorch深度学习实践 3.梯度下降算法-->mini-batch stochastic gradient descent的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/419737

相关文章

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

Spring Boot 3 整合 Spring Cloud Gateway实践过程

《SpringBoot3整合SpringCloudGateway实践过程》本文介绍了如何使用SpringCloudAlibaba2023.0.0.0版本构建一个微服务网关,包括统一路由、限... 目录引子为什么需要微服务网关实践1.统一路由2.限流防刷3.登录鉴权小结引子当前微服务架构已成为中大型系统的标

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.