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

企业网站的建设与管理论文常用网站推广方式有哪些

企业网站的建设与管理论文,常用网站推广方式有哪些,WordPress设置二级域名,网站建设拓扑图Pytorch多GPU训练模型保存和加载 在多GPU训练中#xff0c;模型通常被包装在torch.nn.DataParallel或torch.nn.parallel.DistributedDataParallel中#xff0c;这会在模型的参数名前加上module前缀。因此#xff0c;在保存模型时#xff0c;需要使用model.module.state_di…Pytorch多GPU训练模型保存和加载 在多GPU训练中模型通常被包装在torch.nn.DataParallel或torch.nn.parallel.DistributedDataParallel中这会在模型的参数名前加上module前缀。因此在保存模型时需要使用model.module.state_dict()来获取模型的状态字典以确保保存的参数名与模型定义中的参数名一致。本质上原来的model还是存在的参数也会同步更新 多GPU训练模型保存 在多GPU训练时模型通常被包装在torch.nn.DataParallel或torch.nn.parallel.DistributedDataParallel中这会在模型的参数名前加上module前缀。因此在保存模型时需要使用model.module.state_dict()来获取模型的状态字典以确保保存的参数名与模型定义中的参数名一致。 单GPU或CPU加载模型 当在单GPU或CPU上加载模型时如果直接使用model.state_dict()保存的模型由于缺少module前缀会导致参数名不匹配从而无法正确加载模型。因此在保存多GPU训练的模型时应该使用model.module.state_dict()来保存模型的状态字典这样在单GPU或CPU上加载模型时可以直接加载不会出现参数名不匹配的问题。 示例代码 以下是一个示例代码展示了如何在多GPU训练时保存模型并在单GPU或CPU上加载模型 import torch import torch.nn as nn import os os.os.environ[CUDA_VISIBLE_DEVICES] 0,1 #设置GPU编号 device torch.device(cuda if torch.cuda.is_available() else cpu) # 假设这是你的模型定义 class YourModel(nn.Module):def __init__(self):super(YourModel, self).__init__()self.fc nn.Linear(10, 2)def forward(self, x):return self.fc(x)# 创建模型实例 model YourModel()# 将模型移动到多GPU上 if torch.cuda.device_count() 1:model nn.DataParallel(model)model model.to(device) else:model model.to(device) ······ # 假设这是你的训练代码训练完成后保存模型 if torch.cuda.device_count() 1:torch.save(model.module.state_dict(), model.pth) else:torch.save(model.state_dict(), model.pth)# 在单、多GPU或CPU上加载模型 model YourModel() if torch.cuda.device_count() 1:model torch.nn.DataParallel(model) model.load_state_dict(torch.load(model.pth)) model model.to(device)2 在多GPU训练得到的模型加载时通常需要考虑以下几个步骤 模型保存 在多GPU训练时模型通常被包装在torch.nn.DataParallel或torch.nn.parallel.DistributedDataParallel中。因此在保存模型时需要确保保存的是模型的state_dict而不是整个模型对象。例如 if torch.cuda.device_count() 1:torch.save(model.module.state_dict(), model.pth) else:torch.save(model.state_dict(), model.pth)模型加载 在加载模型时首先需要创建模型的实例然后使用load_state_dict方法来加载保存的权重。如果模型是在多GPU环境下训练的那么在加载时也应该使用torch.nn.DataParallel或torch.nn.parallel.DistributedDataParallel来包装模型。例如 model YourModel() if torch.cuda.device_count() 1:model torch.nn.DataParallel(model) model.load_state_dict(torch.load(model.pth)) model model.to(cuda)注意事项 在加载模型时需要注意以下几点 如果模型是在多GPU环境下训练的那么在加载时也应该使用相同数量的GPU或者使用torch.nn.DataParallel来包装模型即使只有一个GPU可用。 如果模型是在分布式训练环境下训练的那么在加载时也应该使用torch.nn.parallel.DistributedDataParallel来包装模型。 如果模型是在混合精度训练如使用了torch.cuda.amp下训练的那么在加载模型后应该恢复之前的精度设置。 3 为了避免模型保存和加载出错 在多GPU训练的模型使用了torch.nn.DataParallel来包装模型但本质上原来的model是依然存在的且参数会同步更新 torch.nn.DataParallel 的工作原理 torch.nn.DataParallel 是 PyTorch 提供的一个类用于在多个 GPU 上并行训练模型。它的工作原理如下 模型复制DataParallel 会在每个 GPU 上创建模型的副本。 数据分发输入数据会被分发到各个 GPU 上。 前向传播每个 GPU 上的模型副本会独立进行前向传播计算。 梯度收集所有 GPU 上的梯度会被收集并汇总到主 GPU 上。 参数更新主 GPU 上的优化器会根据汇总后的梯度更新模型参数然后将更新后的参数同步回其他 GPU。模型参数更新 当你使用 model_train torch.nn.DataParallel(model) 后model_train 实际上是一个包装了原始模型 model 的对象。虽然 model_train 是多GPU并行的版本但它的参数更新是通过主 GPU 上的优化器完成的并且这些更新会同步回原始模型 model。 因此model 的参数确实会被更新。具体来说 前向传播和反向传播在 train_model 函数中model_train 用于前向传播和反向传播。 参数更新优化器 optimizer 使用的是 model.parameters()即原始模型的参数。在每次迭代中优化器会根据汇总后的梯度更新这些参数。 参数同步更新后的参数会自动同步到 model_train 中的各个 GPU 副本。 因此可以使用如下代码加载模型和保存模型 import torch import torch.nn as nn import os os.os.environ[CUDA_VISIBLE_DEVICES] 0,1 #设置GPU编号 device torch.device(cuda if torch.cuda.is_available() else cpu) # 假设这是你的模型定义 class YourModel(nn.Module):def __init__(self):super(YourModel, self).__init__()self.fc nn.Linear(10, 2)def forward(self, x):return self.fc(x)# 创建模型实例 model YourModel()# 将模型移动到多GPU上单GPU依然适用 if torch.cuda.device_count() 1:model_train nn.DataParallel(model)model_train model_train.to(device) else:model_train model.to(device) optimizer torch.optim.Adam(model.parameters(), lrargs.lr)#注意这是model的参数 ······ output model_train(input) # 多卡时训练的输入和输出注意这是model_train# 假设这是你的训练代码训练完成后保存模型 torch.save(model.state_dict(), model.pth) #注意这是model 再在单/多GPU或CPU上加载模型都不会报错因为这里的model不是包装体不带module model YourModel() if torch.cuda.device_count() 1:model torch.nn.DataParallel(model) model.load_state_dict(torch.load(model.pth,map_location device)) model model.to(device)
http://www.hkea.cn/news/14538521/

相关文章:

  • 企业网站开发是什么集团公司中英文网站模板
  • 江西网站建设平台创意网站建设价格多少
  • 建设网站哪好网站收费标准
  • 哈尔滨网站网站建设宣传旅游网站建设的重点是什么
  • 网站建设的条件是什么企业信息管理系统情况的证明材料
  • 自己做网站的成本深圳网站建设工作室
  • 在哪个网站做图片视频带音乐wordpress 文章不同背景图片
  • 灵犀科技 高端网站建设城乡住房建设厅网站
  • 一个阿里云怎么做两个网站荣耀手机官方商城官网
  • 网站开发的知识怎样做seo搜索引擎优化
  • 佛山网页网站制作模板网站多少钱一个
  • 琼山网站制作南昌大型网站制作
  • 丽水企业网站开发企业食品行业网站源码
  • 匠人精神网站建设seo 网站排名
  • 太原中企动力网站建设frontpage如何做网站
  • 资源网址有哪些合肥网络优化推广公司
  • 贸易公司广告网站微商城开发费用多少
  • 空间中国网站做旅游网站的
  • 网站的维护怎么做cms网站建设教程
  • 淄博网站seo公司网站建设询价邀请函
  • 北海公司做网站最专业的礼品网站案例参考
  • 网站域名已经被绑定展厅设计包括哪些内容
  • 门户网站做啥丹东企业网站建设平台
  • 电子商务网站建设与推广WordPress怎么设置分类
  • 锤子网站cms版本东莞住建局局长主动投案
  • 深圳网站论坛建设造价统计报表在哪个网站上做
  • 做最好的在线看片网站深圳企业网站模板
  • 织梦手机网站怎么安装教程视频网站后台管理系统登陆
  • wordpress 多站点开启网站开发不足之处
  • 郑州网站建设开发公司哪个公司可以做网站