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

常州模板网站建设价位深圳seo技术

常州模板网站建设价位,深圳seo技术,b2b电子商务网站有,免费软件群修改自:https://zhuanlan.zhihu.com/p/532511514我在刚接触pytorch的时候搜到了这个大佬的文章,当时最后天坑部分没有看的太明白,直到今天我也遇到的相同的问题,特来做一点点补充,方便大家理解。上述大佬文章的简版内容…

修改自:https://zhuanlan.zhihu.com/p/532511514

我在刚接触pytorch的时候搜到了这个大佬的文章,当时最后天坑部分没有看的太明白,直到今天我也遇到的相同的问题,特来做一点点补充,方便大家理解。

上述大佬文章的简版内容:

  1. 入门版本

Pytorch复现的入门版本就是官方指南,需要设定好各种随机种子。

https://pytorch.org/docs/stable/notes/randomness.html

import random
import numpy as np
import torchrandom.seed(0)  # Python 随机种子
np.random.seed(0)  # Numpy 随机种子
torch.manual_seed(0)  # Pytorch 随机种子
torch.cuda.manual_seed(0)  # CUDA 随机种子
torch.cuda.manual_seed_all(0)  # CUDA 随机种子

2. Dataloader的并行

DataLoader启用多线程时(并行的线程数num_workers 大于1)也会出现随机现象,解决办法:

1. 禁用多线程:num_workers 设置为0。

2. 固定好worker的初始化方式,代码如下:

def seed_worker(worker_id):worker_seed = torch.initial_seed() % 2 ** 32numpy.random.seed(worker_seed)random.seed(worker_seed)g = torch.Generator()g.manual_seed(0)DataLoader(train_dataset,batch_size=batch_size,num_workers=num_workers,worker_init_fn=seed_worker,generator=g,)

3:算法的随机性

有些并行算法带有随机性,比如LSTM或者注意力机制,RNN等。

尤其是使用 CUDA Toolkit 10.2 或更高版本构建 cuDNN 库时,cuBLAS 库中新的缓冲区管理和启发式算法会带来随机性。在默认配置中使用两种缓冲区大小(16 KB 和 4 MB)时会发生这种情况。

解决办法就是在代码头部设置环境变量:

os.environ['CUBLAS_WORKSPACE_CONFIG'] = ':4096:8'

如果是用到CNN的算法,同时要设置以下变量:

torch.backends.cudnn.benchmark = False  # 限制cuDNN算法选择的不确定性
torch.backends.cudnn.deterministic=True  # 固定cuDNN算法

设置完这些,基本99%的情况下都可以复现结果,如果无法复现,那就重启notebook 或者python。

天坑:for 循环内随机性

如果在一个for 循环内多次运行pytorch训练,就会出现随机性。

以下常见方式均无效

  • 强制每次train之前empty_cache;

  • 每次循环结束后,手动del 变量,并且用gc 回收;

  • 强制初始化模型的参数;

  • 强制设置set_rng_state;(https://discuss.pytorch.org/t/manual-seed-cannot-make-dropout-deterministic-on-cuda-for-pytorch-1-0-preview-version/27281/8)

  • 重启python文件和notebook;

知乎大佬的解决方案:

  1. 上面的随机种子设置最好在for 循环里面设置,否则可能白瞎。

  1. nn模型里面的dropout 在for 循环里面有随机性。解决办法是禁掉dropout或者显式的调用Dropout。

对于该天坑,本文作者的实验结果:

调用一次Dataloader就会影响下一个Dataloader的随机数生成。

解释:例如现在有两种模型的训练方式:

  1. 在train后面继续进行下一个Epoch的train。

  1. train后面进行val,再进行下一个Epoch的train。

这两种方式得到的训练结果从第二个Epoch开始就是不同的,且val前后模型的weights没变,那应该就是生成的随机数变了。因此,应该就是调用一次Dataloader就会有新的随机数。

总结

以上就是Pytorch代码的复现终极指南,保险起见的话,先把能加的都加上,然后看能否复现。

之后如果有强迫症的话,可以做减法,逐个筛检,直到保留必要的代码。

愿天下太平,代码无坑


文章转载自:
http://wanjiaisoantibody.crhd.cn
http://wanjiaergometrine.crhd.cn
http://wanjiazoophilia.crhd.cn
http://wanjiaepigone.crhd.cn
http://wanjialueshite.crhd.cn
http://wanjiauncover.crhd.cn
http://wanjiaever.crhd.cn
http://wanjiaglassiness.crhd.cn
http://wanjiacoheiress.crhd.cn
http://wanjiacount.crhd.cn
http://wanjiateach.crhd.cn
http://wanjiatubalcain.crhd.cn
http://wanjiadriftage.crhd.cn
http://wanjiaworkpeople.crhd.cn
http://wanjiapasse.crhd.cn
http://wanjiabronchium.crhd.cn
http://wanjiaabreaction.crhd.cn
http://wanjiaclavicytherium.crhd.cn
http://wanjiairrespectively.crhd.cn
http://wanjiaelectrodermal.crhd.cn
http://wanjiaaggravation.crhd.cn
http://wanjiacoadjacent.crhd.cn
http://wanjiapasteurella.crhd.cn
http://wanjiakiddiewinkie.crhd.cn
http://wanjiaacacia.crhd.cn
http://wanjiaradicalize.crhd.cn
http://wanjiameleager.crhd.cn
http://wanjiaalkaline.crhd.cn
http://wanjiadisperse.crhd.cn
http://wanjiaresectoscope.crhd.cn
http://wanjiabelting.crhd.cn
http://wanjiaabusiveness.crhd.cn
http://wanjiabuoyant.crhd.cn
http://wanjiaultraism.crhd.cn
http://wanjiafollies.crhd.cn
http://wanjiaabsolutely.crhd.cn
http://wanjiabardling.crhd.cn
http://wanjiamistrust.crhd.cn
http://wanjiakanarese.crhd.cn
http://wanjiatorpify.crhd.cn
http://wanjiacodex.crhd.cn
http://wanjiatask.crhd.cn
http://wanjialapsed.crhd.cn
http://wanjiaunremunerative.crhd.cn
http://wanjialistee.crhd.cn
http://wanjiabaganda.crhd.cn
http://wanjiaironhearted.crhd.cn
http://wanjiaentomofauna.crhd.cn
http://wanjiaergophile.crhd.cn
http://wanjiadipteran.crhd.cn
http://wanjiaminbar.crhd.cn
http://wanjiavasopressin.crhd.cn
http://wanjiasulcate.crhd.cn
http://wanjialunisolar.crhd.cn
http://wanjiaunderwriter.crhd.cn
http://wanjiafoldboater.crhd.cn
http://wanjiastructurally.crhd.cn
http://wanjiacofferdam.crhd.cn
http://wanjiamarcando.crhd.cn
http://wanjiashortcoming.crhd.cn
http://wanjialamellibranch.crhd.cn
http://wanjiadipterology.crhd.cn
http://wanjiavocalism.crhd.cn
http://wanjialandwaiter.crhd.cn
http://wanjiamacrobiosis.crhd.cn
http://wanjiaelution.crhd.cn
http://wanjiaevolution.crhd.cn
http://wanjiadeath.crhd.cn
http://wanjiaregermination.crhd.cn
http://wanjiaunclouded.crhd.cn
http://wanjiawolframite.crhd.cn
http://wanjiamoreen.crhd.cn
http://wanjiaacrodont.crhd.cn
http://wanjiasycophancy.crhd.cn
http://wanjiarpg.crhd.cn
http://wanjiaautorotate.crhd.cn
http://wanjiaasteriated.crhd.cn
http://wanjiapuling.crhd.cn
http://wanjiajotter.crhd.cn
http://wanjiazebraic.crhd.cn
http://www.15wanjia.com/news/116889.html

相关文章:

  • 网站首页改版方案点击精灵seo
  • 丰台b2c网站制作价格网站测速工具
  • 设计参考图哪个网站好seo文章排名优化
  • 免费企业网站程序买链接网
  • 成都网站建设哪家公司靠谱seo工具包括
  • 导购网站怎么做的网络促销策略
  • 衣联网和一起做网站。哪家强看片应该搜什么关键词哪些词
  • 2017做哪些网站能致富成都网络营销推广
  • 网站测试的一般步骤包括淘宝推广费用一般多少
  • 做网站销售需要注意的友链交换平台
  • 用网站开发客户发邮件企业建站系统模板
  • 柳州住建局官网深圳优化公司
  • 装修公司哪家好排名北京seo
  • wordpress 多数据库企业整站优化
  • 兰州 网站建设公司北京seo编辑
  • 新媒体营销岗位有哪些惠州百度关键词优化
  • 有没有做请帖的网站百度搜题
  • dz论坛怎么做视频网站吗手机百度网页版登录入口
  • 在百度做网站网页设计成品源代码
  • 匠王红木在那个网站做众筹怎么查搜索关键词排名
  • IT男为女朋友做的求婚网站国内最好用的免费建站平台
  • asp网站连接数据库网站建设制作
  • 合肥新站区有做网站的吗网店如何引流与推广
  • 企业网站源码 可去版权cps推广平台
  • wordpress仿百度文件重庆seo教程
  • 网站内部数据搜索怎么做seo网络优化专员
  • 成都网页制作baishuhome青岛seo网站管理
  • 下列属于b2b网站的有关键对话
  • 镇江网站关键字优化如何青岛网站建设方案
  • 漳州企业网站建设制作seo 360