欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python ArgumentParse的subparser用法說(shuō)明

 更新時(shí)間:2020年04月20日 10:43:08   作者:咸魚(yú)醬  
這篇文章主要介紹了Python ArgumentParse的subparser用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

在寫(xiě)一些很小的機(jī)器學(xué)習(xí)項(xiàng)目的時(shí)候,我們往往希望training, testing和inference能共用一個(gè)入口main,但是不同的功能使用不同的input參數(shù).當(dāng)然如果三個(gè)功能對(duì)應(yīng)三個(gè).py腳本問(wèn)題也不大,但是畢竟覺(jué)得不太優(yōu)雅.這個(gè)時(shí)候就需要考慮如何讓代碼更加簡(jiǎn)單有條理.

主要是最近在看parser有關(guān)的東西,所以看到了一個(gè)項(xiàng)目,里面的使用subparser的地方是值得借鑒的,下面附上代碼和部分自己的一些見(jiàn)解

def main():
 parser = argparse.ArgumentParser()
 subparsers = parser.add_subparsers()

 hparams = make_hparams() 
 # 這個(gè)函數(shù)是直接寫(xiě)了一些超參數(shù),講真我不太喜歡這個(gè)操作,個(gè)人還是比較傾向用一個(gè)額外的config文件來(lái)存儲(chǔ)
 # 這些超參,這樣輸入的只要是config文件的路徑即可;主要是這么做可以看到自己每一步的參數(shù)是怎么設(shè)置的
 # 便于后期出現(xiàn)了問(wèn)題來(lái)排錯(cuò)
 subparser = subparsers.add_parser("train")
 # add subparser here
 subparser.set_defaults(callback=lambda args: run_train(args, hparams))
 # 加上callback選項(xiàng),run_train是前期定義的一個(gè)函數(shù),這條和后面的args.callback(args)對(duì)應(yīng)
 hparams.populate_arguments(subparser) 
 # 這里就是作者自己定義的一個(gè)函數(shù),本質(zhì)其實(shí)還是一系列的add_argument
 subparser.add_argument("--numpy-seed", type=int)
 subparser.add_argument("--model-path-base", required=True)
 subparser.add_argument("--evalb-dir", default="EVALB/")
 subparser.add_argument("--train-path", default="data/02-21.10way.clean")
 subparser.add_argument("--dev-path", default="data/22.auto.clean")
 subparser.add_argument("--batch-size", type=int, default=250)
 subparser.add_argument("--subbatch-max-tokens", type=int, default=2000)
 subparser.add_argument("--eval-batch-size", type=int, default=100)
 subparser.add_argument("--epochs", type=int)
 subparser.add_argument("--checks-per-epoch", type=int, default=4)
 subparser.add_argument("--print-vocabs", action="store_true")

 subparser = subparsers.add_parser("test")
 subparser.set_defaults(callback=run_test)
 subparser.add_argument("--model-path-base", required=True)
 subparser.add_argument("--evalb-dir", default="EVALB/")
 subparser.add_argument("--test-path", default="data/23.auto.clean")
 subparser.add_argument("--test-path-raw", type=str)
 subparser.add_argument("--eval-batch-size", type=int, default=100)

 subparser = subparsers.add_parser("ensemble")
 subparser.set_defaults(callback=run_ensemble)
 subparser.add_argument("--model-path-base", nargs='+', required=True)
 subparser.add_argument("--evalb-dir", default="EVALB/")
 subparser.add_argument("--test-path", default="data/22.auto.clean")
 subparser.add_argument("--eval-batch-size", type=int, default=100)

 subparser = subparsers.add_parser("parse")
 subparser.set_defaults(callback=run_parse)
 subparser.add_argument("--model-path-base", required=True)
 subparser.add_argument("--input-path", type=str, required=True)
 subparser.add_argument("--output-path", type=str, default="-")
 subparser.add_argument("--eval-batch-size", type=int, default=100)

 subparser = subparsers.add_parser("viz")
 subparser.set_defaults(callback=run_viz)
 subparser.add_argument("--model-path-base", required=True)
 subparser.add_argument("--evalb-dir", default="EVALB/")
 subparser.add_argument("--viz-path", default="data/22.auto.clean")
 subparser.add_argument("--eval-batch-size", type=int, default=100)

 args = parser.parse_args()
 args.callback(args)

補(bǔ)充知識(shí):python 學(xué)習(xí)筆記--argparse模塊以及parse_known_args()函數(shù)

代碼test.py:

import argparse
import sys

parse=argparse.ArgumentParser()
parse.add_argument("--learning_rate",type=float,default=0.01,help="initial learining rate")
parse.add_argument("--max_steps",type=int,default=2000,help="max")
parse.add_argument("--hidden1",type=int,default=100,help="hidden1")
flags,unparsed=parse.parse_known_args(sys.argv[1:])
print flags.learning_rate
print flags.max_steps
print flags.hidden1
print unparsed

運(yùn)行

python test.py --learning_rate 20 --max_steps 10 --hidden1 100 --arg_int 2

其效果等同于

python test.py --learning_rate=20 --max_steps=10 --hidden1=100 --arg_int=2

輸出:

20.0
10
100

['--arg_int', '2']

flags為namespace空間,結(jié)果是Namespace(hidden1=100, learning_rate=20.0, max_steps=10),包含程序定義了的命令行參數(shù),而unparsed為程序沒(méi)有定義的命令行參數(shù)。

以上這篇Python ArgumentParse的subparser用法說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python應(yīng)用領(lǐng)域和就業(yè)形勢(shì)分析總結(jié)

    Python應(yīng)用領(lǐng)域和就業(yè)形勢(shì)分析總結(jié)

    在本篇文章總我們給大家整理了關(guān)于Python應(yīng)用領(lǐng)域和就業(yè)形勢(shì)分析以及圖文介紹,需要的朋友們可以參考下。
    2019-05-05
  • 利用Pandas求兩個(gè)dataframe差集的過(guò)程詳解

    利用Pandas求兩個(gè)dataframe差集的過(guò)程詳解

    在Pandas中求差集沒(méi)有專門(mén)的函數(shù),處理辦法就是將兩個(gè)DataFrame追加合并,然后去重,下面這篇文章主要給大家介紹了關(guān)于利用Pandas求兩個(gè)dataframe差集的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • MacOS(M1芯片 arm架構(gòu))下安裝PyTorch的詳細(xì)過(guò)程

    MacOS(M1芯片 arm架構(gòu))下安裝PyTorch的詳細(xì)過(guò)程

    這篇文章主要介紹了MacOS(M1芯片 arm架構(gòu))下安裝PyTorch的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Pandas時(shí)間序列:重采樣及頻率轉(zhuǎn)換方式

    Pandas時(shí)間序列:重采樣及頻率轉(zhuǎn)換方式

    今天小編就為大家分享一篇Pandas時(shí)間序列:重采樣及頻率轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Python操作PDF圖片的基本方法(增刪改查)

    Python操作PDF圖片的基本方法(增刪改查)

    PDF文件中的圖片可以豐富文檔內(nèi)容,提升用戶的閱讀體驗(yàn),除了在PDF中添加圖片外,有時(shí)也需要替換或刪除其中的圖片,文本將提供三個(gè)示例,介紹如何使用Python?操作PDF文件中的圖片,需要的朋友可以參考下
    2024-04-04
  • Pytorch實(shí)現(xiàn)ResNet網(wǎng)絡(luò)之Residual Block殘差塊

    Pytorch實(shí)現(xiàn)ResNet網(wǎng)絡(luò)之Residual Block殘差塊

    這篇文章主要為大家介紹了Pytorch實(shí)現(xiàn)ResNet網(wǎng)絡(luò)之Residual Block殘差塊實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • jupyter notebook參數(shù)化運(yùn)行python方式

    jupyter notebook參數(shù)化運(yùn)行python方式

    這篇文章主要介紹了jupyter notebook參數(shù)化運(yùn)行python方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • pygame實(shí)現(xiàn)俄羅斯方塊游戲(AI篇1)

    pygame實(shí)現(xiàn)俄羅斯方塊游戲(AI篇1)

    這篇文章主要為大家詳細(xì)介紹了pygame實(shí)現(xiàn)俄羅斯方塊游戲AI的第1篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python使用ConfigParser模塊操作配置文件的方法

    Python使用ConfigParser模塊操作配置文件的方法

    這篇文章主要介紹了Python使用ConfigParser模塊操作配置文件的方法,結(jié)合實(shí)例形式分析了Python基于ConfigParser模塊針對(duì)配置文件的創(chuàng)建、讀取、寫(xiě)入、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • python中使用websocket方法實(shí)例詳解

    python中使用websocket方法實(shí)例詳解

    WebSocket是一種網(wǎng)絡(luò)通信協(xié)議,它在單個(gè)TCP連接上提供全雙工的通信信道,本文我們將探討如何在Python中使用WebSocket實(shí)現(xiàn)實(shí)時(shí)通信,感興趣的朋友跟隨小編一起看看吧
    2024-03-03

最新評(píng)論