那曲檬骨新材料有限公司

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>PyTorch教程19.3之異步隨機(jī)搜索

PyTorch教程19.3之異步隨機(jī)搜索

2023-06-05 | pdf | 0.29 MB | 次下載 | 免費(fèi)

資料介紹

正如我們?cè)谇懊娴牡?19.2 節(jié)中看到的那樣,由于超參數(shù)配置的評(píng)估代價(jià)高昂,我們可能不得不等待數(shù)小時(shí)甚至數(shù)天才能在隨機(jī)搜索返回良好的超參數(shù)配置之前。在實(shí)踐中,我們經(jīng)常訪問資源池,例如同一臺(tái)機(jī)器上的多個(gè) GPU 或具有單個(gè) GPU 的多臺(tái)機(jī)器。這就引出了一個(gè)問題:我們?nèi)绾斡行У胤植茧S機(jī)搜索?

通常,我們區(qū)分同步和異步并行超參數(shù)優(yōu)化(見圖19.3.1)。在同步設(shè)置中,我們等待所有并發(fā)運(yùn)行的試驗(yàn)完成,然后再開始下一批。考慮包含超參數(shù)的配置空間,例如過濾器的數(shù)量或深度神經(jīng)網(wǎng)絡(luò)的層數(shù)。包含更多過濾器層數(shù)的超參數(shù)配置自然會(huì)花費(fèi)更多時(shí)間完成,并且同一批次中的所有其他試驗(yàn)都必須在同步點(diǎn)(圖 19.3.1 中的灰色區(qū)域)等待,然后我們才能 繼續(xù)優(yōu)化過程。

在異步設(shè)置中,我們會(huì)在資源可用時(shí)立即安排新的試驗(yàn)。這將以最佳方式利用我們的資源,因?yàn)槲覀兛梢员苊馊魏瓮介_銷。對(duì)于隨機(jī)搜索,每個(gè)新的超參數(shù)配置都是獨(dú)立于所有其他配置選擇的,特別是沒有利用任何先前評(píng)估的觀察結(jié)果。這意味著我們可以簡單地異步并行化隨機(jī)搜索。這對(duì)于根據(jù)先前的觀察做出決定的更復(fù)雜的方法來說并不是直截了當(dāng)?shù)模▍⒁?第 19.5 節(jié))。雖然我們需要訪問比順序設(shè)置更多的資源,但異步隨機(jī)搜索表現(xiàn)出線性加速,因?yàn)檫_(dá)到了一定的性能K如果K試驗(yàn)可以并行進(jìn)行。

https://file.elecfans.com/web2/M00/A9/CE/poYBAGR9PW-AdScKAACpELBjcYw139.svg

圖 19.3.1同步或異步分配超參數(shù)優(yōu)化過程。與順序設(shè)置相比,我們可以減少整體掛鐘時(shí)間,同時(shí)保持總計(jì)算量不變。在掉隊(duì)的情況下,同步調(diào)度可能會(huì)導(dǎo)致工人閑置。

在本筆記本中,我們將研究異步隨機(jī)搜索,其中試驗(yàn)在同一臺(tái)機(jī)器上的多個(gè) Python 進(jìn)程中執(zhí)行。分布式作業(yè)調(diào)度和執(zhí)行很難從頭開始實(shí)現(xiàn)。我們將使用Syne Tune Salinas等人,2022 年,它為我們提供了一個(gè)簡單的異步 HPO 接口Syne Tune 旨在與不同的執(zhí)行后端一起運(yùn)行,歡迎感興趣的讀者研究其簡單的 API,以了解有關(guān)分布式 HPO 的更多信息

import logging
from d2l import torch as d2l

logging.basicConfig(level=logging.INFO)
from syne_tune import StoppingCriterion, Tuner
from syne_tune.backend.python_backend import PythonBackend
from syne_tune.config_space import loguniform, randint
from syne_tune.experiments import load_experiment
from syne_tune.optimizer.baselines import RandomSearch
INFO:root:SageMakerBackend is not imported since dependencies are missing. You can install them with
  pip install 'syne-tune[extra]'
AWS dependencies are not imported since dependencies are missing. You can install them with
  pip install 'syne-tune[aws]'
or (for everything)
  pip install 'syne-tune[extra]'
AWS dependencies are not imported since dependencies are missing. You can install them with
  pip install 'syne-tune[aws]'
or (for everything)
  pip install 'syne-tune[extra]'
INFO:root:Ray Tune schedulers and searchers are not imported since dependencies are missing. You can install them with
  pip install 'syne-tune[raytune]'
or (for everything)
  pip install 'syne-tune[extra]'

19.3.1。目標(biāo)函數(shù)

首先,我們必須定義一個(gè)新的目標(biāo)函數(shù),以便它現(xiàn)在通過回調(diào)將性能返回給 Syne Tune report

def hpo_objective_lenet_synetune(learning_rate, batch_size, max_epochs):
  from syne_tune import Reporter
  from d2l import torch as d2l

  model = d2l.LeNet(lr=learning_rate, num_classes=10)
  trainer = d2l.HPOTrainer(max_epochs=1, num_gpus=1)
  data = d2l.FashionMNIST(batch_size=batch_size)
  model.apply_init([next(iter(data.get_dataloader(True)))[0]], d2l.init_cnn)
  report = Reporter()
  for epoch in range(1, max_epochs + 1):
    if epoch == 1:
      # Initialize the state of Trainer
      trainer.fit(model=model, data=data)
    else:
      trainer.fit_epoch()
    validation_error = trainer.validation_error().cpu().detach().numpy()
    report(epoch=epoch, validation_error=float(validation_error))

請(qǐng)注意,PythonBackendSyne Tune 需要在函數(shù)定義中導(dǎo)入依賴項(xiàng)。

19.3.2。異步調(diào)度器

首先,我們定義同時(shí)評(píng)估試驗(yàn)的工人數(shù)量。我們還需要通過定義總掛鐘時(shí)間的上限來指定我們想要運(yùn)行隨機(jī)搜索的時(shí)間。

n_workers = 2 # Needs to be <= the number of available GPUs

max_wallclock_time = 12 * 60 # 12 minutes

接下來,我們說明要優(yōu)化的指標(biāo)以及我們是要最小化還是最大化該指標(biāo)。即,metric需要對(duì)應(yīng)傳遞給回調(diào)的參數(shù)名稱report

mode = "min"
metric = "validation_error"

我們使用前面示例中的配置空間。在 Syne Tune 中,該字典也可用于將常量屬性傳遞給訓(xùn)練腳本。我們利用此功能以通過 max_epochs. 此外,我們指定要在 中評(píng)估的第一個(gè)配置initial_config

config_space = {
  "learning_rate": loguniform(1e-2, 1),
  "batch_size": randint(32, 256),
  "max_epochs": 10,
}
initial_config = {
  "learning_rate": 0.1,
  "batch_size": 128,
}

接下來,我們需要指定作業(yè)執(zhí)行的后端。這里我們只考慮本地機(jī)器上的分布,其中并行作業(yè)作為子進(jìn)程執(zhí)行。但是,對(duì)于大規(guī)模 HPO,我們也可以在集群或云環(huán)境中運(yùn)行它,其中每個(gè)試驗(yàn)都會(huì)消耗一個(gè)完整的實(shí)例。

trial_backend = PythonBackend(
  tune_function=hpo_objective_lenet_synetune,
  config_space=config_space,
)

BasicScheduler我們現(xiàn)在可以為異步隨機(jī)搜索創(chuàng)建調(diào)度程序,其行為與我們?cè)?第 19.2 節(jié)中的類似

scheduler = RandomSearch(
  config_space,
  metric=metric,
  mode=mode,
  points_to_evaluate=[initial_config],
)
INFO:syne_tune.optimizer.schedulers.fifo:max_resource_level = 10, as inferred from config_space
INFO:syne_tune.optimizer.schedulers.fifo:Master random_seed = 4033665588

Syne Tune 還具有一個(gè)Tuner,其中主要的實(shí)驗(yàn)循環(huán)和簿記是集中的,調(diào)度程序和后端之間的交互是中介的。

stop_criterion = StoppingCriterion(max_wallclock_time=max_wallclock_time)

tuner = Tuner(
  trial_backend=trial_backend,
  scheduler=scheduler,
  stop_criterion=stop_criterion,
  n_workers=n_workers,
  print_update_interval=int(max_wallclock_time * 0.6),
)

讓我們運(yùn)行我們的分布式 HPO 實(shí)驗(yàn)。根據(jù)我們的停止標(biāo)準(zhǔn),它將運(yùn)行大約 12 分鐘。

tuner.run()
INFO:syne_tune.tuner:results of trials will be saved on /home/d2l-worker/syne-tune/python-entrypoint-2023-02-10-04-56-21-691
INFO:root:Detected 8 GPUs
INFO:root:running subprocess with command: /home/d2l-worker/miniconda3/envs/d2l-en-release-0/bin/python /home/d2l-worker/miniconda3/envs/d2l-en-release-0/lib/python3.9/site-packages/syne_tune/backend/python_backend/python_entrypoint.py --learning_rate 0.1 --batch_size 128 --max_epochs 10 --tune_function_root /home/d2l-worker/syne-tune/python-entrypoint-2023-02-10-04-56-21-691/tune_function --tune_function_hash 53504c42ecb95363b73ac1f849a8a245 --st_checkpoint_dir /home/d2l-worker/syne-tune/python-entrypoint-2023-02-10-04-56-21-691/0/checkpoints
INFO:syne_tune.tuner:(trial 0) - scheduled config {'learning_rate': 0.1, 'batch_size': 128, 'max_epochs': 10}
INFO:root:running subprocess with command: /home/d2l-worker/miniconda3/envs/d2l-en-release-0/bin/python /home/d2l-worker/miniconda3/envs/d2l-en-release-0/lib/python3.9/site-packages/syne_tune/backend/python_backend/python_entrypoint.py --learning_rate 0.31642002803324326 --batch_size 52 --max_epochs 10 --tune_function_root /home/d2l-worker/syne-tune/python-entrypoint-2023-02-10-04-56-21-691/tune_function --tune_function_hash 53504c42ecb95363b73ac1f849a8a245 --st_checkpoint_dir /home/d2l-worker/syne-tune/python-entrypoint-2023-02-10-04-56-21-691/1/checkpoints
INFO:syne_tune.tuner:(trial 1) - scheduled config {'learning_rate': 0.31642002803324326, 'batch_size': 52, 'max_epochs': 10}
INFO:syne_tune.tuner:Trial trial_id 0 completed.
INFO:root:running subprocess with command: /home/d2l-worker/miniconda3/envs/d2l-en-release-0/bin/python /home/d2l-worker/miniconda3/envs/d2l-en-release-0/lib/python3.9/site-packages/syne_tune/backend/python_backend/python_entrypoint.py --learning_rate 0.045813161553582046 --batch_size 71 --max_epochs 10 --tune_function_root /home/d2l-worker/syne-tune/python-entrypoint-2023-02-10-04-56-21-691/tune_function --tune_function_hash 53504c42ecb95363b73ac1f849a8a245 --st_checkpoint_dir /home/d2l-worker/syne-tune/python-entrypoint

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
大丰收百家乐的玩法技巧和规则 | 大发888怎么打不开| 百家乐官网登封代理| 百家乐官网庄闲的比例| 百家乐棋牌游戏皇冠网| 大发888 娱乐| 优博平台代理开户| 金海岸百家乐官网的玩法技巧和规则| 老牌百家乐娱乐城| 中华德州扑克协会| 在线百家乐官网游戏软件| 澳门百家乐信誉| 定结县| 百家乐如何计算| 顶级赌场连环夺宝下注有什么窍门 | 网上真钱老虎机| 马牌百家乐官网的玩法技巧和规则| 全讯网bbin888.com| 百家乐官网桌子北京| 百家乐专业术语| 娱乐城百家乐官网技巧| 百家乐赌博详解| 百家乐官网转盘技巧| 波浪百家乐测试| 网上百家乐如何打水| 荆门市| 百家乐门户网站| E乐博百家乐官网现金网| 百家乐反缆公式| 网络百家乐官网破解器| 百家乐官网游戏平台有哪些哪家的口碑最好 | 战神娱乐城| 百家乐线上真人游戏| 兰西县| 澳门百家乐新濠天地| 百家乐官网论坛在线提供| 希尔顿百家乐娱乐城 | 百家乐投注之对冲投注| 百家乐官网软件l柳州| 金冠百家乐娱乐城| 百家乐官网娱乐人物|