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

wap网站如何建设网页创建基本步骤

wap网站如何建设,网页创建基本步骤,哪里有网络推广,快速推广gradient checkpointing 一般来说#xff0c;训练的过程需要保存中间结果#xff08;不管是GPU还是CPU#xff09;。前向传播根据输入(bottom_data)计算输出(top_data)#xff0c;后向传播由top_diff计算bottom_diff#xff08;如果某个变量打开梯度进行训练的话#xff…gradient checkpointing 一般来说训练的过程需要保存中间结果不管是GPU还是CPU。前向传播根据输入(bottom_data)计算输出(top_data)后向传播由top_diff计算bottom_diff如果某个变量打开梯度进行训练的话。top和bottom是包含数据和梯度的两个结构体整个网络的每层top和bottom在训练的过程中都会保存这消耗了大量的内存。 如果不保存这些变量每次传播时重新分配和计算会大大减少内存的使用量但是也会使得网络的训练时间无限延长。为了平衡这两个矛盾论文Training Deep Nets with Sublinear Memory Cost 使用亚线性内存成本训练深度网络我们提出了一种系统方法来减少深度的内存消耗 神经网络训练。具体来说我们设计了一种成本高昂的算法 Osqrtn 内存来训练 n 层网络只需计算成本 每个小批量的额外前向传递。每隔 sqrt(n)保留一个检查点的feature map。 CODE https://pytorch.org/docs/stable/checkpoint.html // https://discuss.pytorch.org/t/trying-to-understand-torch-utils-checkpoint/95224 import torch from torch import nn from torch.utils.data import Dataset, DataLoader import numpy as np from tqdm.notebook import tqdmfrom torch import optim import torchvision.models as models from torch import nnCHECKPOINT True BATCH_SIZE 32 dev cuda:0class ImageDataset(Dataset):def __init__(self,length 100000,size 244):self.length lengthself.size 244def __len__(self):return self.lengthdef __getitem__(self,idx,display False):return torch.from_numpy(np.random.randn(2,3,self.size,self.size)) train ImageDataset() trainloader DataLoader(train,batch_size BATCH_SIZE,num_workers 24,pin_memory True )resnet models.resnet50(pretrained False)class MODEL(nn.Module):def __init__(self,model):super(MODEL,self).__init__()self.model modelself.LR nn.Linear(1000,1000)def forward(self,x):if CHECKPOINT False:o1 self.model(x[:,0])o2 self.model(x[:,1])else:o1 torch.utils.checkpoint.checkpoint(self.model,x[:,0])o2 torch.utils.checkpoint.checkpoint(self.model,x[:,1])return torch.mean((self.LR(o1)-o2)**2)resnet MODEL(resnet).to(dev)optimizer optim.SGD(resnet.parameters(),lr .001)for T in tqdm(trainloader):out torch.mean(resnet(T.float().to(dev)))optimizer.zero_grad()out.backward()optimizer.step()CG https://github.com/merrymercy/dtr-prototype ZeRO-Offload https://arxiv.org/pdf/2101.06840.pdf 大规模模型训练一直是少数人的比赛场地 需要复杂的模型重构和访问昂贵的 GPU 集群。ZeRO-Offload 通过使 几乎每个人都可以访问大型模型训练。它可以训练模型 单个 GPU 上超过 13 亿个参数与 GPU 相比大小增加了 10 倍 流行的框架如PyTorch它不需要任何模型就可以做到这一点。 从数据科学家改变或牺牲计算效率。 ZeRO-卸载通过卸载数据和计算来实现大型模型训练 中央处理器。为了保持计算效率它旨在最大限度地减少数据 移入/移出 GPU减少 CPU 计算时间同时最大化内存 节省 GPU 成本。因此ZeRO-Offload可以在单个上实现40 TFlops / GPU。 NVIDIA V100 GPU 用于 10B 参数模型与单独使用 PyTorch 的 30TF 相比 对于 1.4B 参数模型可以训练而不会耗尽的最大参数模型 的记忆。ZeRO-Offload 还设计为在以下情况下在多个 GPU 上进行扩展 可用可在多达 128 个 GPU 上提供近乎线性的加速。此外它可以 与模型并行性协同工作训练超过 70 亿的模型 单个 DGX-2 盒子上的参数与模型尺寸相比增加了 4.5 倍 单独使用模型并行性。通过将计算和内存效率与 易于使用ZeRO-Offload 使大规模模型训练民主化使其成为 即使是数据科学家也可以访问只需访问一个 GPU。 梯度累积 训练时大的batch一般能得到更稳定的训练效果梯度累积训练方法是一种用于训练深度神经网络的技术旨在减少显存需求并提高训练效果。在传统的训练方法中模型的参数是通过单个批次batch的数据计算得到的梯度平均值进行更新。但在梯度累积训练中模型的参数更新是通过多个批次的梯度累积得到的。 以下是梯度累积训练的基本步骤 设置梯度累积步数accumulation steps它决定了要累积多少个批次的梯度。 初始化模型的参数。 对于每个训练批次batch 使用当前批次的数据进行前向传播计算损失。对损失进行反向传播计算梯度。累积当前批次的梯度到之前的梯度值上。 当累积达到设置的步数时将累积的梯度应用于模型参数的更新 通过将累积的梯度平均化来获得参数的更新值。使用更新值来更新模型的参数。 重复步骤3和4直到完成所有的训练批次。 梯度累积训练的主要优势在于能够降低每个批次所需的显存量允许在具有有限显存的硬件上训练更大的模型。此外梯度累积还可以改善模型的收敛性提高模型的性能和泛化能力。
http://www.yutouwan.com/news/348903/

相关文章:

  • 用jsp怎么做的购物网站给公司做门户网站多少钱
  • 哪个网站可以免费建站网站开发语言分为几种
  • 电脑网站自适应怎么做制作个人主页
  • 网站首页下拉广告新东方在线教育平台官网
  • 最好的做网站丽水专业做网站
  • 如何查网站是否备案教育培训网站开发
  • 天动力网站开发口碑好的网站建设价格
  • 快速做网站公司哪家专业seo专员工资一般多少
  • 做网站用的腾讯云服务器做服装店网站的素材
  • 专业网站建设市场做商城网站要什么手续费
  • 做自己的网站的一般步骤深圳vi设计公司联系
  • 校园网站的建设作用网页编辑平台
  • 游戏下载网站模板wordpress在线浏览pdf
  • 网站开发属于网络营销外包团队哪些好
  • 西宁制作网站多少钱wordpress 单页导航
  • 建设科技信息+网站建设动画制作物语
  • 中国物流网官方网站域名备案查询最新消息
  • 潢川手机网站建设比百度还强大的搜索引擎
  • 做网站放广告赚钱做网站台式还是笔记本
  • 怎样才能建立网站郑州网站设计公司排名
  • 宝安高端网站建设公司厦门网站建设公司名单
  • 做编程网站有哪些方面网站建设与网页制作盒子模型
  • 用dw怎么做网站留言板科技公司网站系统
  • 桃城网站建设门户网站建设验收报告
  • 易语言可以做网站聚合影视网站建设
  • 怎么制作网站域名wordpress wampserve
  • 接了做网站的单子流程外国人做汉字网站
  • 重庆网站建设有名 乐云践新网站建设主要学什么
  • 创建公司网站的方案有网站建设太金手指六六六
  • 做安全防护信息的网站制作音乐app