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

外包网站开发哪家好建筑设计师网站

外包网站开发哪家好,建筑设计师网站,有哪些做兼职的设计网站,承德网站开发公司关注B站可以观看更多实战教学视频:肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) SGD,即随机梯度下降(Stochastic Gradient Descent),是机器学习中用于优化目标函数的迭代方法,特别是在处…

关注B站可以观看更多实战教学视频:肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com)

SGD,即随机梯度下降(Stochastic Gradient Descent),是机器学习中用于优化目标函数的迭代方法,特别是在处理大数据集和在线学习场景中。与传统的批量梯度下降(Batch Gradient Descent)不同,SGD在每一步中仅使用一个样本来计算梯度并更新模型参数,这使得它在处理大规模数据集时更加高效。

SGD算法的基本步骤

  1. 初始化参数:选择初始参数值,可以是随机的或者基于一些先验知识。
  2. 随机选择样本:从数据集中随机选择一个样本。
  3. 计算梯度:计算损失函数关于当前参数的梯度。
  4. 更新参数:沿着负梯度方向更新参数。
  5. 重复:重复步骤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_rate=0.01, epochs=1000):  # 初始化参数  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(f"Epoch {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(f"Optimized parameters: w = {w}, b = {b}")

解析

  • 在上面的代码中,我们首先定义了损失函数和它的梯度。对于线性回归,损失函数通常是均方误差。
  • sgd函数实现了SGD算法。它接受输入数据x和标签y,以及学习率和迭代次数作为参数。
  • 在每次迭代中,我们计算损失函数关于参数wb的梯度,并使用这些梯度来更新参数。
  • 我们还记录了每次迭代的损失值,以便稍后可视化算法的收敛情况。
  • 最后,我们打印出优化后的参数值。在实际应用中,你可能还需要使用这些参数来对新数据进行预测。

在PyTorch中,SGD(随机梯度下降)是一种基本的优化器,用于调整模型的参数以最小化损失函数。下面是torch.optim.SGD的参数解析和一个简单的用例。

SGD的Pytorch代码示例:

参数解析

torch.optim.SGD的主要参数如下:

  1. params (iterable):待优化的参数,或者是定义了参数的模型的迭代器。
  2. lr (float):学习率。这是更新参数的步长大小。较小的值会导致更新更精细,而较大的值可能会导致训练过程不稳定。这是SGD优化器的一个关键参数。
  3. momentum (float, optional):动量因子 (default: 0)。该参数加速了SGD在相关方向上的收敛,并抑制了震荡。
  4. dampening (float, optional):动量的抑制因子 (default: 0)。增加此值可以减少动量的影响。在实际应用中,这个参数的使用较少。
  5. weight_decay (float, optional):权重衰减 (L2 penalty) (default: 0)。通过向损失函数添加与权重向量平方成比例的惩罚项,来防止过拟合。
  6. 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(), lr=0.01, momentum=0.9, weight_decay=0.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(f'Epoch {epoch+1}, Loss: {loss.item()}')

在这个例子中,我们创建了一个简单的两层神经网络模型,并使用SGD优化器来更新模型的参数。在训练循环中,我们执行了前向传播来计算模型的输出,然后计算了损失,通过调用loss.backward()执行了反向传播来计算梯度,最后通过调用optimizer.step()更新了模型的参数。在每次迭代开始时,我们使用optimizer.zero_grad()来清除之前累积的梯度,这是非常重要的步骤,因为PyTorch默认会累积梯度。

http://www.yayakq.cn/news/254149/

相关文章:

  • 如何修改网站后台地址制作网站哪家专业
  • 盘锦工程建设信息网站如何制作出优秀的ui设计
  • 阐述建站流程长沙网站设计联系地址
  • 做网站如何放入图像博客发布 网站模版
  • 网站建设哪家有名wordpress 作者插件
  • wordpress站内查找做一个主题wordpress
  • 昆山网站公司哪家好兰州手机网站制作公司哪家好
  • 做公益网站的原因eclipse做购物网站
  • 网站如何做静态化创立网站做电商
  • 自己做网站 套模板祝贺公司网站上线
  • 临安网站建设公司怎么申请自己的小程序
  • php工具箱是直接做网站的吗海报生成器在线制作
  • 单人给一个公司做网站费用百度seo官网
  • 电商网站春节放假通知网站建设带数据库模板下载
  • 淘宝联盟怎么自己做网站推广黄页是什么应用
  • 做网店好还是网站好谷歌浏览器wordpress证书不安全
  • wordpress主题大前端seo企业网站源码
  • 中国关于影院建设的网站域名注册人查询
  • 速拓科技是做网站注册传媒公司需要的条件
  • 西安做网站要多少钱做网站哪家比较好
  • 专业提供网站建设服务包括库尔勒网络推广
  • 做国外营销型网站专业网站改版
  • 个人信息页面设计漂亮的网站邢台房产信息网58同城
  • 关于网站建设相关文章武威网站建设公司有
  • 整站下载器 做网站地图网站快速设计
  • 做网站的那家公司好成都网站模板购买
  • 朔州网站建设收费多少坂田做网站建设好的网络公司
  • 自己怎么去做seo网站推广?网站开发需要注意的
  • 电子商务网站建设与管理项目计划书网站正在建设中模板
  • 去哪里找做网站如何获取网站根目录链接