<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          深度學(xué)習(xí)代碼中argparse以及yaml文件的使用

          共 2533字,需瀏覽 6分鐘

           ·

          2022-03-18 19:43

          點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)

          重磅干貨,第一時(shí)間送達(dá)

          知乎—Mr.Hang 侵刪
          地址:https://zhuanlan.zhihu.com/p/440707265

          01

          argparse使用總結(jié)

          首先argparse一般寫(xiě)在

          if?__name__?==?'__main__':
          之后,在下方寫(xiě)需要使用的參數(shù);
          格式如下:

          parse = argparse.ArgumentParser()parse.add_argument('--num_batches', type=int, default=50, help='the num of batch')parse.add_argument('--num_window', type=int, default=5, help='the num of window')parse.add_argument('--weight', type=str, default= '../pretrain.pth', help='the path of pretrained model')opt = parse.parse_args()
          parse = argparse.ArgumentParser() 首先創(chuàng)建一個(gè)對(duì)象,然后用 parse.add_argument方法添加需要的參數(shù)值,添加完后用 opt = parse.parse_args()將所有的參數(shù)封裝在opt內(nèi),之后用例如opt.weight就可以調(diào)用。
          在主函數(shù)傳入opt參數(shù),即可調(diào)用命令行傳入的參數(shù)值,整個(gè)例子如下:

          import argparse
          def main(opt): print(opt.num_batches)
          if __name__ == '__main__':
          parse = argparse.ArgumentParser() parse.add_argument('--num_batches', type=int, default=50, help='the num of batch') parse.add_argument('--num_window', type=int, default=5, help='the num of window') parse.add_argument('--weight', type=str, default= '../pretrain.pth', help='the path of pretrained model')
          opt = parse.parse_args()????main(opt)

          02

          Yaml使用總結(jié)

          yaml文件通常也是用于保存參數(shù),在主函數(shù)中用來(lái)調(diào)用,yaml文件是一個(gè)層級(jí)結(jié)構(gòu),以字典形式調(diào)用 yaml文件結(jié)構(gòu)如下:

          device: 'cpu'
          data: train_path: 'data/train' test_path: 'test/train'????num:?1000
          特別需要注意縮進(jìn)使用空格而不是tab,并且層級(jí)之間一定要對(duì)齊。


          03

          讀取yaml文件

          在讀取yaml文件時(shí),先將yaml文件里面的內(nèi)容全部用系統(tǒng)函數(shù)讀入,然后用yaml.safe_load進(jìn)行加載,轉(zhuǎn)換成一個(gè)字典,返回字典供后續(xù)使用。讀取代碼如下:

          def read_yaml(path):    file = open(path, 'r', encoding='utf-8')    string = file.read()    dict = yaml.safe_load(string)
          return dict
          調(diào)用的時(shí)候就根據(jù)yaml文件里面的結(jié)構(gòu)層次按鍵值對(duì)進(jìn)行調(diào)用:

          path = 'config.yaml'Dict = read_yaml(path)device = Dict['device']print(device)
          train_path = Dict['data']['train_path']print(train_path)
          完整測(cè)試代碼如下:

          import yaml
          def read_yaml(path): file = open(path, 'r', encoding='utf-8') string = file.read() dict = yaml.safe_load(string)
          return dictpath = 'config.yaml'Dict = read_yaml(path)device = Dict['device']print(device)
          train_path = Dict['data']['train_path']print(train_path)

          04

          yaml與argparse混合使用

          看過(guò)很多paper的代碼,兩者基本都是混合使用的,yaml首先可以將全部參數(shù)都設(shè)置一個(gè)默認(rèn)值,比如網(wǎng)絡(luò)的層數(shù),激活函數(shù)用哪個(gè)等等,大多是模型內(nèi)相關(guān)的參數(shù)以及train和test使用的數(shù)據(jù)的地址。
          argparse通常設(shè)置幾個(gè)train和test時(shí)經(jīng)常更改的參數(shù),比如訓(xùn)練的epoch,batch_size,learning_rate...
          argparse接收的是命令行的輸入,所以優(yōu)先級(jí)應(yīng)該是會(huì)高一些;假如argparse和yaml文件中都有相同的參數(shù),如果命令行指定了參數(shù),那么代碼運(yùn)行時(shí)使用的參數(shù)是命令行輸入的參數(shù)。

          13個(gè)你一定要知道的PyTorch特性

          解讀:為什么要做特征歸一化/標(biāo)準(zhǔn)化?

          一文搞懂 PyTorch 內(nèi)部機(jī)制

          張一鳴:每個(gè)逆襲的年輕人,都具備的底層能力


          關(guān)


          ,學(xué),西學(xué)學(xué)運(yùn)營(yíng)護(hù)號(hào),樂(lè)質(zhì)結(jié)識(shí),關(guān)[],學(xué)習(xí)進(jìn)!


          瀏覽 96
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美三日本三级少妇三级999 | 俺来也俺去也 | 亚洲色大成人网站www永久 | 无码子一区二区 | 亚洲黄色电影在线 |