?
一、引言?
對于算法工程師來說,語言從來都不是關鍵,關鍵是快速學習以及解決問題的能力。大學的時候參加ACM/ICPC一直使用的是C語言,實習的時候做一個算法策略后臺用的是php,畢業后做策略算法開發,因為要用spark,所以寫了scala,后來用基于storm開發實時策略,用的java。至于python,從日常用hive做數據策略用python寫udf,到基于tensorflow深度學習框架寫python版的模型網絡,再到現在實用pytorch做大模型。眼看著在語言紛爭中,python的應用越來越廣,開一個單獨的專欄用于記錄python中常用到的技巧,算是做筆記,沒事翻出來看看。
本文重點介紹python中的參數解析器(ArgumentParser)。
二、參數解析器(ArgumentParser)
2.1 概述
在Python中,
ArgumentParser用于定義和讀取命令行輸入的參數,在運行python文件時對命令行參數進行解析處理。
2.2 代碼示例
from argparse import ArgumentParserdef _get_args():parser = ArgumentParser()parser.add_argument("-c", "--checkpoint-path", type=str, default=DEFAULT_CKPT_PATH,help="Checkpoint name or path, default to %(default)r")parser.add_argument("--cpu-only", action="store_true", help="Run demo with CPU only")parser.add_argument("--share", action="store_true", default=False,help="Create a publicly shareable link for the interface.")parser.add_argument("--inbrowser", action="store_true", default=False,help="Automatically launch the interface in a new tab on the default browser.")parser.add_argument("--server-port", type=int, default=18003,help="Demo server port.")parser.add_argument("--server-name", type=str, default="127.0.0.1",help="Demo server name.")parser.add_argument("-g","--gpus",type=str,default="auto",help="set gpu numbers")args = parser.parse_args()return argsdef main():args = _get_args()model, tokenizer = _load_model_tokenizer(args)if __name__ == '__main__':main()
這是一個大模型web_demo.py的參數讀取樣例:先通過?ArgumentParser類聲明一個解析器對象parser,采用add_argument(加參數)方法將參數加入到解析器parser中,最后parser調用parse_args(解析參數)方法將參數提取、返回。參數傳入后續的函數進行應用。
重點在于add_argument方法的參數:
"-c":一個"-"代表命令命令行指定命令的縮寫,這個后面跟進要輸入的內容
"--checkpoint-path":兩個"--"后面跟著參數的名字,args.checkpoint-path即可使用該參數
"type=str":參數類型
"default=DEFAULT_CKPT_PATH":參數默認值
"action="store_true"":如果命令行輸入了該參數,該參數即為true,不加為default中的默認值,帶有這個的參數主要為true、false判別類參數。
"help="Checkpoint name or path, default to %(default)r")":help,注釋。
三、總結
命令行參數解析器ArgumentParser通常為python代碼的第一道關,在main()中聲明或定義。使用該方法可以輕松的讀取命令行的參數,構造帶有命令行參數的python腳本。
《AI—工程篇》
AI智能體研發之路-工程篇(一):Docker助力AI智能體開發提效
AI智能體研發之路-工程篇(二):Dify智能體開發平臺一鍵部署
AI智能體研發之路-工程篇(三):大模型推理服務框架Ollama一鍵部署
AI智能體研發之路-工程篇(四):大模型推理服務框架Xinference一鍵部署
AI智能體研發之路-工程篇(五):大模型推理服務框架LocalAI一鍵部署
《AI-模型篇》
AI智能體研發之路-模型篇(一):大模型訓練框架LLaMA-Factory在國內網絡環境下的安裝、部署及使用
AI智能體研發之路-模型篇(二):DeepSeek-V2-Chat 訓練與推理實戰
AI智能體研發之路-模型篇(三):中文大模型開、閉源之爭
AI智能體研發之路-模型篇(四):一文入門pytorch開發
AI智能體研發之路-模型篇(五):pytorch vs tensorflow框架DNN網絡結構源碼級對比
AI智能體研發之路-模型篇(六):【機器學習】基于tensorflow實現你的第一個DNN網絡
AI智能體研發之路-模型篇(七):【機器學習】基于YOLOv10實現你的第一個視覺AI大模型
AI智能體研發之路-模型篇(八):【機器學習】Qwen1.5-14B-Chat大模型訓練與推理實戰?