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

口碑好的郑州网站建设友情链接如何添加

口碑好的郑州网站建设,友情链接如何添加,平台营销型网站建设,网页设计与网站建设选择题文章目录 序言1. 可复现设置代码2. 可复现设置代码解析2.1 消除python与numpy的随机性2.2 消除torch的随机性2.3 消除DataLoader的随机性2.4 消除cuda的随机性2.5 避免pytorch使用不确定性算法2.6 使用pytorch-lightning2.7 特殊情况 序言 为了让模型在同一设备每次训练的结果…

文章目录

        • 序言
        • 1. 可复现设置代码
        • 2. 可复现设置代码解析
          • 2.1 消除python与numpy的随机性
          • 2.2 消除torch的随机性
          • 2.3 消除DataLoader的随机性
          • 2.4 消除cuda的随机性
          • 2.5 避免pytorch使用不确定性算法
          • 2.6 使用pytorch-lightning
          • 2.7 特殊情况

序言
  • 为了让模型在同一设备每次训练的结果可复现,需进行可复现设置
1. 可复现设置代码
def set_seed(seed):random.seed(seed)np.random.seed(seed)os.environ['PYTHONHASHSEED'] = str(seed)torch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.cuda.manual_seed_all(seed)torch.backends.cudnn.deterministic = Truetorch.backends.cudnn.benchmark = Falsetorch.backends.cudnn.enabled = Falseos.environ['CUBLAS_WORKSPACE_CONFIG'] = ':16:8'torch.use_deterministic_algorithms(True)set_seed(21)
2. 可复现设置代码解析
2.1 消除python与numpy的随机性
import random
import numpy as np# 消除numpy和random的随机性
random.seed(SEED)
np.random.seed(SEED)# 固定python环境变量中的PYTHONHASHSEED,禁止hash随机化
os.environ['PYTHONHASHSEED'] = str(seed)
2.2 消除torch的随机性
import torch
import torch
torch.manual_seed(SEED)
torch.cuda.manual_seed(SEED) 		# 适用于显卡训练
torch.cuda.manual_seed_all(SEED) 	# 适用于多显卡训练
2.3 消除DataLoader的随机性
  • 使用torch时,一般都会使用DataLoader加载数据集,这个类使用了多线程的处理方式,因此会造成一定随机性
def seed_worker(worker_id):random.seed(SEED + worker_id)g = torch.Generator()
g.manual_seed(SEED)DataLoader(train_dataset,batch_size=batch_size,num_workers=num_workers,worker_init_fn=seed_workergenerator=g,
)
  • 设置shuffle=True并设置随机种子
# 可复现设置代码,可按上述来设置
def setup_seed(seed):torch.manual_seed(seed)torch.cuda.manual_seed_all(seed)np.random.seed(seed)random.seed(seed)torch.backends.cudnn.deterministic = True# 设置随机数种子
setup_seed(21)# shufle=True,不同训练之间一样的乱序
train_loader2 = DataLoader(dataset=dealDataset, batch_size=32, shuffle=True)
2.4 消除cuda的随机性
  • 适用于GPU训练
# 确保每次返回的卷积算法等是固定的
torch.backends.cudnn.deterministic = True# 禁止cudnn使用非确定性算法
torch.backends.cudnn.enabled = False# 配合enabled命令使用
# True:自动寻找最适合当前配置的高效算法来优化运行效率
# False:保证实验结果可复现
torch.backends.cudnn.benchmark = False
  • 不设置torch.backends.cudnn.enabled = False的话,无法保证训练结果可复现性。但添加这行后会导致训练速度很慢

  • 如果cuda是10.2及以上版本,少数cuda操作是不确定的,需要做如下设置

os.environ['CUBLAS_WORKSPACE_CONFIG'] = ':16:8'或os.environ['CUBLAS_WORKSPACE_CONFIG'] = ':4096:8'
2.5 避免pytorch使用不确定性算法
  • 配置pytorch在可用的情况下,使用确定性算法而不是非确定性算法。如果已知某个操作是不确定的,并且没有确定的替代办法,则抛出RuntimeError错误
torch.use_deterministic_algorithms(True)
2.6 使用pytorch-lightning
  • 详见 pytorch-lightning设置

  • 该方法保证了可复现的同时,没有牺牲任何训练速度

2.7 特殊情况
  • 在某些版本的CUDA中,RNN和LSTM网络可能具有不确定性行为,如LSTM中的dropout,需要注意这一特性。需要关注如何消除不确定性

 


【参考文章】
[1]. pytorch模型可复现性设置
[2]. DataLoader类设置打乱的随机数种子
[3]. pytorch消除模型训练的随机性
[4]. pytorch模型训练可复现方案

created by shuaixio, 2024.02.24

http://www.dtcms.com/wzjs/67654.html

相关文章:

  • 北京大兴住房和城乡建设委员会网站搜索引擎营销简称seo
  • 阴阳师网站怎么做百度一下百度一下你知道
  • 营销策划公司简介网站优化排名方法
  • 微信公众号如何做网站产品设计公司
  • qq刷赞网站推广软件国内做网站的公司
  • 做网站先做首页企业域名查询
  • 做生鲜的网站网络平台推广运营公司
  • 美国一特级a做爰片免费网站 视频金华关键词优化平台
  • 网站建设文献综述范文外链图片
  • 手机网站模板用什么做百度官网认证价格
  • 如何设计一个购物网站怎么找网站
  • 中移建设招标网站太原互联网推广公司
  • 上海奉贤做网站阿里指数数据分析平台
  • 青海企业网站制作做谷歌推广比较好的公司
  • 做微商进哪个网站安全吗在线营销推广
  • 中学网站建设方案广点通投放平台
  • 十大知名博客网站软文推广500字
  • 做优化网站怎么优化代码亚马逊关键词排名提升
  • 青海企业网站建设seo博客优化
  • 网站建设对接流程图指数运算法则
  • 做水果生意去那个网站seo教程优化
  • 在线修图网站电商运营转行后悔了
  • 旅游资讯网站建设方案关键词有哪些?
  • 影视传媒广告公司网站模板aso关键词搜索优化
  • 网站建设pdf 下载营销策略包括哪些内容
  • 系统门户网站建设详细功能百度官方网站
  • 公司招聘一个网站建设来做推广百度app安装
  • 高端建站属于外包公司么免费云服务器
  • icp备案单位网站自媒体是如何赚钱的
  • h5网站开发设计广州seo营销培训