yacs介紹 安裝 使用

2021-10-25 02:30:49 字數 2031 閱讀 4027

1.yacs介紹

yacs是乙個輕量級用於定義和管理系統配置的開源庫,是科學實驗軟體中常用的引數配置。在機器學習、深度學習模型訓練過程中的超引數配置(卷積神經網路的深度,初始學習率等)。科學實驗的重現性至關重要,因此,需要記錄實驗過程中的引數設定,以達到後期進行實驗的重現。yacs使用一種簡單的,可讀的yaml格式。

2.yacs安裝

git clone 

python setup.py install

3.yacs使用

3.1 建立可配置引數檔案並設定預設值

建立可配置檔案,通常命名為config.py或者default.py,該檔案包含了所有可配置的引數,並為每個引數設定了預設值。

config.py

from yacs.config import cfgnode as cn

_c=cn(

)_c.system=cn(

)_c.system.num_gpus =

8_c.system.num_workers =4

_c.train = cn(

)_c.train.hyperparameter_1 =

0.1_c.train.scales =(2

,4,8

,16)def

get_cfg_defaults()

:return _c.clone(

)#區域性變數使用形式

cfg = _c

3.2 建立yaml配置檔案

通常情況下,為每個實驗建立乙個yaml檔案,每個配置檔案中僅包含該實驗中正在修改的選項。

config.yaml

system:

num_gpus:

2train:

scales:(1

,2)

3.3 使用配置檔案

進行初始設定以後,使用freeze()函式將設定值凍結,防止配置資訊被修改。如下,可以通過直接匯入cfg作為全域性變數進行訪問,也可以將cfg的複製作為引數進行傳遞,這種使用為cfg作為區域性變數使用。

main.py

#from config import get_cfg_defaults #區域性變數

from config import cfg

if __name__ ==

"__main__"

:#cfg = get_cfg_defaults() #區域性變數使用

cfg.merge_from_file(

"config.yaml"

) cfg.freeze()

cfg2 = cfg.clone(

) cfg2.defrost(

) cfg2.train.scales =(8

,32,64

) cfg2.freeze(

)print

("cfg:"

)print

(cfg)

print

("cfg2:"

)print

(cfg2)

輸出結果為:

cfg:

system:

num_gpus:

2 num_workers:

4train:

hyperparameter_1:

0.1 scales:(1

,2)cfg2:

system:

num_gpus:

2 num_workers:

4train:

hyperparameter_1:

0.1 scales:(8

,32,64

)

4 參考

1.

stylus 介紹 , 安裝 , 使用

1.stylus是css預處理器,具有對css可程式設計,編寫快速便捷的特性.2.stylus源自於node.js 2010年產生 主要用來給node專案進行css預處理支援 1.標準的stylus語法就是沒有花括號,沒有分號,沒有冒號 減少開發時間 2.近似指令碼的方式去寫css 1.stylus...

Redis安裝及使用介紹

tar xvzf redis 3.0.3.tar.gz cd redis 3.0.3 make make install 測試執行 開啟服務端 usr local bin redis server 使用6379埠號 開啟客戶端 usr local bin redis cli set name hah...

Memcache介紹 安裝 使用(四)

memcached雖然成為 分布式 伺服器,但是服務端根本沒有 分布式 功能,而是完全有客戶端實現所謂的 分布式 假設有node1,node2,node3三颱memcache快取伺服器,有五個不同的key值需要儲存。首先向memcache新增第乙個key tokyo 客戶端接收到key後,客戶端實現...