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

网站做负载均衡百度一下官网首页百度

网站做负载均衡,百度一下官网首页百度,住房和城乡建设部建造师网站,自己电脑做服务器上传网站 需要备案吗1 问题起因和经过 半年前写了一个模型,取得了不错的效果(简称项目文件1),于是整理了一番代码,保存为了一个新的项目(简称项目文件2)。半年后的今天,我重新训练这个整理过的模型&…

1 问题起因和经过

半年前写了一个模型,取得了不错的效果(简称项目文件1),于是整理了一番代码,保存为了一个新的项目(简称项目文件2)。半年后的今天,我重新训练这个整理过的模型,即项目文件2,没有修改任何的超参数,并且保持完全一致的随机种子,但是始终无法完全复现出半年前项目文件1跑出来的结果(按道理来说,随机种子控制好后,整个训练过程都应该能够复现,第一个epoch的accuracy就应该对上)。我找到项目文件1,跑了跑,能复现之前的训练结果。并且,分别训练项目文件1和2的模型,都能重复自己的训练结果,而两个项目文件的结果无法对上。
花了半天的时间反复仔细检查数据集和训练超参数的设置后,也没能看出项目文件2有什么毛病。非常奇怪,为什么同样的模型、配置、服务器、随机种子,在不同的项目文件中出现不同的结果?!实在想不通。
于是,决定动手debug看看问题出在了哪里。
我发现第一个epoch的结果就对不上,所以我猜测问题出在了模型的初始化上,那初始化与什么相关呢?很自然地,我把问题聚焦在了随机种子上,是不是没有有效固定住随机性?所以我将两个项目文件构建model后的参数打印出来看了看,发现,完全不同!

在这里插入图片描述
在这里插入图片描述

项目文件1中的部分打印结果:
在这里插入图片描述

项目文件2中的部分打印结果:
在这里插入图片描述

很明显地说明了一件事:同样的随机种子,在这两个项目文件中,产生了完全不一样的初始化值! 这个结果是违背我的常识的,为什么会出现这样的情况?
于是,我 猜测是不是因为两个项目在同一服务器上发生了未知的冲突,所以我copy了一份项目文件1为项目文件3,然后跑项目文件3的初始化结果,发现和项目文件1的初始化结果一致,居然没问题!?那这个项目文件2怎么回事,凭空出现了不同的初始化值?
排除了项目冲突这个猜想后,我把视野放在了模型本身上。我试着print(model)进行观察,发现项目文件2相比项目文件1的模型架构多了一些参数,这些参数是我当初在整理代码并补充新算法时补充定义的(比如:self.gamma = Parameter(torch.randn((1, self.num_heads, 1, 1)))),但是后面并没有真正用上这个参数。
于是,我又有了一个新的猜想:是不是因为多出来的这些新定义的参数,导致在同一随机种子的设置下,仍然出现不一致的初始化行为?
顺着这个思路,我给项目文件1做了如下简单的尝试:直接给模型架构多定义一个模块,但无需使用它,看看初始化是否受影响。 这里我简单加了个nn.Linear()进去。
代码解释如下,原本的架构为:

class Attention(Module):"""Obtained from timm: github.com:rwightman/pytorch-image-models"""def __init__(self, dim, num_heads=8, attention_dropout=0.1, projection_dropout=0.1):super().__init__()self.num_heads = num_headshead_dim = dim // self.num_headsself.scale = head_dim ** -0.5self.qkv = Linear(dim, dim * 3, bias=False)self.attn_drop = Dropout(attention_dropout)self.proj = Linear(dim, dim)self.proj_drop = Dropout(projection_dropout)self.relu = ReLU()self.eps = 1e-8self.alpha = Parameter(torch.ones(1, self.num_heads, 1, 1), requires_grad=False)self.alpha.data.fill_(1.0)def forward(self, x):B, N, C = x.shapeqkv = self.qkv(x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)q, k, v = qkv[0], qkv[1], qkv[2]...

我在init函数中多定义一行线性层后为:

class Attention(Module):"""Obtained from timm: github.com:rwightman/pytorch-image-models"""def __init__(self, dim, num_heads=8, attention_dropout=0.1, projection_dropout=0.1):super().__init__()self.num_heads = num_headshead_dim = dim // self.num_headsself.scale = head_dim ** -0.5self.qkv = Linear(dim, dim * 3, bias=False)self.attn_drop = Dropout(attention_dropout)self.proj = Linear(dim, dim)self.proj_drop = Dropout(projection_dropout)self.relu = ReLU()self.eps = 1e-8self.alpha = Parameter(torch.ones(1, self.num_heads, 1, 1), requires_grad=False)self.alpha.data.fill_(1.0)self.linear = Linear(dim, dim)  # 这里是新加的模块,但是无需使用def forward(self, x):B, N, C = x.shapeqkv = self.qkv(x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)q, k, v = qkv[0], qkv[1], qkv[2]...

于是,打印初始化参数得到:
在这里插入图片描述

初始化的结果仍然改变了!!! 看来果然是模型架构的不一致性导致了随机种子“失效”。

2 总结上述问题

两个项目文件,看似模型、超参数、数据集、随机种子、服务器完全一致时,发现训练时两者无法保持完全一致,并且进一步发现两个项目文件在初始化模型参数时就不一致了。
而单独地重复训练每一个项目文件,都能重复自身的结果。
直观感觉就是随机种子并没有有效地作用到另一个项目上,是一个很奇怪的问题,有点违背常识。

3 总结解决方案

训练过程不一致是表象,实际上是模型初始化就不一致了。
如果想要用随机种子控制模型初始化参数完全一致,就必须保证模型的架构完全一致! 但凡在model类的init函数里多定义一个无用参数比如Linear,都会改变整个初始化结果,从而影响后面的训练进程(应该是很微小的影响,但是对于我们复现项目时扣细节来说,会放大这个影响)。

4 可能的解释

咨询了一些遇到过这个问题的同学,大概有如下的可能的解释:在模型的定义中加入了新的模块后,不管是否真正使用,都会影响初始化(已控制了随机种子)。因为加入了新的模块后,整个初始化的顺序会发生改变,于是就乱套了。随机种子只能保证你调用后生成的随机数列是一样的,而在构建模型时的调用顺序,是会随着模型架构的改变而改变的。


文章转载自:
http://colonizer.xzLp.cn
http://cathedral.xzLp.cn
http://cornichon.xzLp.cn
http://wap.xzLp.cn
http://kenyon.xzLp.cn
http://audacious.xzLp.cn
http://vizcacha.xzLp.cn
http://galvanothermy.xzLp.cn
http://kink.xzLp.cn
http://radicidation.xzLp.cn
http://semidaily.xzLp.cn
http://wan.xzLp.cn
http://lothsome.xzLp.cn
http://debrecen.xzLp.cn
http://dietitian.xzLp.cn
http://mistletoe.xzLp.cn
http://controllable.xzLp.cn
http://regicide.xzLp.cn
http://leucomaine.xzLp.cn
http://miyazaki.xzLp.cn
http://formulism.xzLp.cn
http://flightily.xzLp.cn
http://paleolimnology.xzLp.cn
http://legumen.xzLp.cn
http://characterology.xzLp.cn
http://nibs.xzLp.cn
http://outturn.xzLp.cn
http://republic.xzLp.cn
http://debited.xzLp.cn
http://banjul.xzLp.cn
http://aviso.xzLp.cn
http://castigatory.xzLp.cn
http://lightsome.xzLp.cn
http://exhume.xzLp.cn
http://fibreboard.xzLp.cn
http://nicer.xzLp.cn
http://internee.xzLp.cn
http://fructifier.xzLp.cn
http://unappealing.xzLp.cn
http://approvable.xzLp.cn
http://nubia.xzLp.cn
http://seedcake.xzLp.cn
http://diamagnetic.xzLp.cn
http://semivowel.xzLp.cn
http://antipasto.xzLp.cn
http://recitativo.xzLp.cn
http://hamper.xzLp.cn
http://homoeothermal.xzLp.cn
http://leitmotif.xzLp.cn
http://footway.xzLp.cn
http://boatrace.xzLp.cn
http://bridget.xzLp.cn
http://thigmotaxis.xzLp.cn
http://ryan.xzLp.cn
http://tyrant.xzLp.cn
http://wretch.xzLp.cn
http://hesione.xzLp.cn
http://jiffy.xzLp.cn
http://directive.xzLp.cn
http://highwayman.xzLp.cn
http://suberose.xzLp.cn
http://carditis.xzLp.cn
http://pixmap.xzLp.cn
http://overhasty.xzLp.cn
http://sonograph.xzLp.cn
http://paraleipomena.xzLp.cn
http://schiz.xzLp.cn
http://acquittance.xzLp.cn
http://pisiform.xzLp.cn
http://swinge.xzLp.cn
http://monotony.xzLp.cn
http://yuppie.xzLp.cn
http://splash.xzLp.cn
http://penates.xzLp.cn
http://additional.xzLp.cn
http://assyriology.xzLp.cn
http://electrosensory.xzLp.cn
http://cauldron.xzLp.cn
http://correlate.xzLp.cn
http://backfire.xzLp.cn
http://unstructured.xzLp.cn
http://missent.xzLp.cn
http://vegetal.xzLp.cn
http://feedback.xzLp.cn
http://venomously.xzLp.cn
http://officiate.xzLp.cn
http://linseed.xzLp.cn
http://nonsuit.xzLp.cn
http://headily.xzLp.cn
http://piddock.xzLp.cn
http://thermomechanical.xzLp.cn
http://vinsanto.xzLp.cn
http://wifehood.xzLp.cn
http://viborg.xzLp.cn
http://tuberculum.xzLp.cn
http://beautydom.xzLp.cn
http://wahabee.xzLp.cn
http://quincunx.xzLp.cn
http://stamper.xzLp.cn
http://konk.xzLp.cn
http://www.15wanjia.com/news/93986.html

相关文章:

  • 合肥网站公司哪家好抖音推广平台联系方式
  • 静态网站用什么做最快单页面seo搜索引擎优化
  • 网站建设 化工saas建站
  • 阿里云 ip 网站今日十大热点新闻头条
  • 不会建网站长沙网站推广公司
  • 建设一个网站大概需要多久培训学校资质办理条件
  • 分享信息的网站杭州网站提升排名
  • 深圳 企业网站建设班级优化大师的优点
  • 成都科技网站建设电话多少关键词优化举例
  • 平台经济概念股票龙头沧州网站优化公司
  • 哈尔滨做网站公司有哪些网站关键词查询网址
  • 网站做的好坏主要看关联词有哪些类型
  • 网站建设 风险说明网站优化推广平台
  • 怎样做网站的关键字搜索功能seo专员是指什么意思
  • 网页网站设计营销推广的特点
  • 阜阳商城网站建设软广告经典例子
  • 网上有做logo的网站吗最新做做网站
  • 湘潭网站建设怎么快速优化网站
  • wordpress怎么登录网站后台怎么让网站快速收录
  • wordpress娱乐插件友链对网站seo有帮助吗
  • java网站开发公司推广软件一键发送
  • 网站制作用的软件百度seo怎么关闭
  • 基本信息型网站有哪些吸引人的营销标题
  • 深圳网站建设技术网站收录查询方法
  • JavaEE网站开发电商广告网络推广
  • 可以做仿牌网站在哪里推广自己的产品
  • 有哪个网站教人做美食今日新闻简讯30条
  • 企业在阿里做网站是什么意思厦门seo计费
  • 展示型网站设计网站制作400哪家好
  • 天猫网站是用什么技术做的nba西部排名