当前位置: 首页 > news >正文

网站建设 管理系统开发仿租号网站源码网站开发

网站建设 管理系统开发,仿租号网站源码网站开发,网站建设办公软件销售技巧,做外贸用什么平台关注B站可以观看更多实战教学视频#xff1a;肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) SGD#xff0c;即随机梯度下降#xff08;Stochastic Gradient Descent#xff09;#xff0c;是机器学习中用于优化目标函数的迭代方法#xff0c;特别是在处… 关注B站可以观看更多实战教学视频肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) SGD即随机梯度下降Stochastic Gradient Descent是机器学习中用于优化目标函数的迭代方法特别是在处理大数据集和在线学习场景中。与传统的批量梯度下降Batch Gradient Descent不同SGD在每一步中仅使用一个样本来计算梯度并更新模型参数这使得它在处理大规模数据集时更加高效。 SGD算法的基本步骤 初始化参数选择初始参数值可以是随机的或者基于一些先验知识。随机选择样本从数据集中随机选择一个样本。计算梯度计算损失函数关于当前参数的梯度。更新参数沿着负梯度方向更新参数。重复重复步骤2-4直到满足停止条件如达到预设的迭代次数或损失函数的改变小于某个阈值。 SGD的Python代码示例 python实现 假设我们要使用SGD来优化一个简单的线性回归模型。 import numpy as np # 目标函数损失函数和其梯度 def loss_function(w, b, x, y): return np.sum((y - (w * x b)) ** 2) / len(x) def gradient_function(w, b, x, y): dw -2 * np.sum((y - (w * x b)) * x) / len(x) db -2 * np.sum(y - (w * x b)) / len(x) return dw, db # SGD算法 def sgd(x, y, learning_rate0.01, epochs1000): # 初始化参数 w np.random.rand() b np.random.rand() # 存储每次迭代的损失值用于可视化 losses [] for i in range(epochs): # 随机选择一个样本在这个示例中我们没有实际进行随机选择而是使用了整个数据集。在大数据集上你应该随机选择一个样本或小批量样本。 # 注意为了简化示例这里我们实际上使用的是批量梯度下降。在真正的SGD中你应该在这里随机选择一个样本。 # 计算梯度 dw, db gradient_function(w, b, x, y) # 更新参数 w w - learning_rate * dw b b - learning_rate * db # 记录损失值 loss loss_function(w, b, x, y) losses.append(loss) # 每隔一段时间打印损失值可选 if i % 100 0: print(fEpoch {i}, Loss: {loss}) return w, b, losses # 示例数据你可以替换为自己的数据 x np.array([1, 2, 3, 4, 5]) y np.array([2, 4, 6, 8, 10]) # 运行SGD算法 w, b, losses sgd(x, y) print(fOptimized parameters: w {w}, b {b})解析 在上面的代码中我们首先定义了损失函数和它的梯度。对于线性回归损失函数通常是均方误差。sgd函数实现了SGD算法。它接受输入数据x和标签y以及学习率和迭代次数作为参数。在每次迭代中我们计算损失函数关于参数w和b的梯度并使用这些梯度来更新参数。我们还记录了每次迭代的损失值以便稍后可视化算法的收敛情况。最后我们打印出优化后的参数值。在实际应用中你可能还需要使用这些参数来对新数据进行预测。 在PyTorch中SGD随机梯度下降是一种基本的优化器用于调整模型的参数以最小化损失函数。下面是torch.optim.SGD的参数解析和一个简单的用例。 SGD的Pytorch代码示例 参数解析 torch.optim.SGD的主要参数如下 params (iterable)待优化的参数或者是定义了参数的模型的迭代器。lr (float)学习率。这是更新参数的步长大小。较小的值会导致更新更精细而较大的值可能会导致训练过程不稳定。这是SGD优化器的一个关键参数。momentum (float, optional)动量因子 (default: 0)。该参数加速了SGD在相关方向上的收敛并抑制了震荡。dampening (float, optional)动量的抑制因子 (default: 0)。增加此值可以减少动量的影响。在实际应用中这个参数的使用较少。weight_decay (float, optional)权重衰减 (L2 penalty) (default: 0)。通过向损失函数添加与权重向量平方成比例的惩罚项来防止过拟合。nesterov (bool, optional)是否使用Nesterov动量 (default: False)。Nesterov动量是标准动量方法的一个变种它在计算梯度时使用了未来的近似位置。 用例 下面是一个使用SGD优化器的简单例子 import torch import torch.nn as nn import torch.optim as optim # 定义一个简单的模型 model nn.Sequential( nn.Linear(10, 5), nn.ReLU(), nn.Linear(5, 2), ) # 定义损失函数 criterion nn.CrossEntropyLoss() # 定义优化器 optimizer optim.SGD(model.parameters(), lr0.01, momentum0.9, weight_decay0.001) # 假设有输入数据和目标 input_data torch.randn(1, 10) target torch.tensor([1]) # 训练循环这里只展示了一次迭代 for epoch in range(1): # 通常会有多个 epochs # 前向传播 output model(input_data) # 计算损失 loss criterion(output, target) # 反向传播 optimizer.zero_grad() # 清除之前的梯度 loss.backward() # 计算当前梯度 # 更新参数 optimizer.step() # 应用梯度更新 # 打印损失 print(fEpoch {epoch1}, Loss: {loss.item()})在这个例子中我们创建了一个简单的两层神经网络模型并使用SGD优化器来更新模型的参数。在训练循环中我们执行了前向传播来计算模型的输出然后计算了损失通过调用loss.backward()执行了反向传播来计算梯度最后通过调用optimizer.step()更新了模型的参数。在每次迭代开始时我们使用optimizer.zero_grad()来清除之前累积的梯度这是非常重要的步骤因为PyTorch默认会累积梯度。
http://www.w-s-a.com/news/555912/

相关文章:

  • 怎么自己弄网站免费网站设计用什么软件
  • 网站分几种access做网站数据方法
  • 网站默认图片s001网站建设公司
  • 淘宝的电子商务网站的建设东莞哪里有网站制作公司
  • 西安网站制作怎么联系wordpress登陆界面打开慢
  • 高端工作网站网站推广seo代理
  • 一般找素材都是做哪几个网站呢推广引流工具
  • 必须做网站等级保护html网页设计题库
  • 移动端网站开发 float手机在线建网站
  • 教育网站模板下载做汽车网站开题报告的意义
  • 网站首页做后台链接昌平网站制作
  • 营销型门户网站建设浏览器下载免费大全
  • 快三网站开发推广普通话手抄报内容50字
  • 沈阳专业做网站开发公司asp网站搭建教程
  • 网站建设代码福州小程序开发平台
  • 了解做房产广告的网站手机版官方网站的建设
  • 如何与别的网站做友情链接做网站排名大概要多少钱
  • 东莞市锂电池网站建设HTML5怎么做自适应网站
  • 江苏城乡建设学校网站群晖建立wordpress
  • wordpress导入网站模板seo自学网官网
  • 购物网站服务器带宽北京网站开发周期
  • 同性做视频网站网站怎么添加栏目
  • 新余网站设计seo自学网站
  • 新乡个人网站建设价格wordpress数据插件
  • 你是网站设计有限公司的项目经理网站推广的重要性
  • 网站定制开发怎么写泸州设计公司有哪些
  • 上海网站建设zj kt迅速编程做网站
  • 郑州服装 网站建设网站栏目合理性
  • 平面设计在线网站最新汽油价格调整最新消息
  • 刷单网站建设wordpress缩略图 裁剪