1. Введение в argparse
argsparse - стандартный модуль для синтаксического анализа командной строки python. Он встроен в python и не требует установки. Эта библиотека позволяет нам передавать параметры программе и запускать программу непосредственно из командной строки. Эта библиотека также является одной из многих библиотек, которые необходимо изучить для глубокого обучения, включая библиотеку индикатора выполнения tqdm из предыдущей статьи и библиотеки Numpy и Pandas, представленные позже. Ничего особенного, так что давайте успокоимся и научимся вместе!
Два, argparse обучение
- Во-первых, нам нужно импортировать, это очень просто
import argparse
- Его метод использования также относительно фиксирован, не более, чем следующие 3 шага:
- (1). Создать объект ArgumentParser ()
- (2). Вызовите метод add_argument (), чтобы добавить параметры.
- (3). Используйте метод parse_args () для анализа добавленных параметров.
- Давайте сначала перейдем к простому примеру для понимания
‘’‘这个例子非常简单:在命令行中输入3个整型数,然后对它们进行求和操作’‘’
import argparse
if __name__ == '__main__':
# 创建ArgmentParser()对象
parser = argparse.ArgumentParser(description='add')
# 添加参数
parser.add_argument('--first', type = int, default = '1', help = 'first num')
parser.add_argument('--second', type = int, default = '2',help = 'second num')
parser.add_argument('--third', type =int, default = '3', help = 'third num')
# 解析参数
args = parser.parse_args()
args_vars = vars(args)
first = args_vars.get('first')
second = args_vars.get('second')
third= args_vars.get('third')
print(int(first) + int(second) + int(third))
- пробег
В-третьих, подробно описан метод add_argument ()
- Анализ метода
add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
- параметр
- name or flags : 一个命名或者一个选项字符串的列表,例如 foo 或 -f, --foo。
- action : 当参数在命令行中出现时使用的动作基本类型。
- store_const:当从命令出现了这个参数,则保存const中的常量。
- store_true、store_false:与上面store_const类似,只是保存的是真假值
- nargs : 命令行参数应当消耗的数目。
- const : 被一些 action 和 nargs 选择所需求的常数。
- default : 当参数未在命令行中出现并且也不存在于命名空间对象时所产生的值。
- type : 命令行参数应当被转换成的类型。
- choices : 可用的参数的容器。
- required : 此命令行选项是否可省略 (仅选项可用)。
- help : 一个此选项作用的简单描述。
- metavar : 在使用方法消息中使用的参数值示例。
- dest : 被添加到 parse_args() 所返回对象上的属性名。
- Параметров много, здесь мы остановимся только на нескольких наиболее часто используемых.
- name or flags : 一个命名或者一个选项字符串的列表,例如 foo 或 -f, --foo。
- default : 当参数未在命令行中出现并且也不存在于命名空间对象时所产生的值。
- 所有选项和一些位置参数可能在命令行中被忽略。
- action : 指示如何处理命令行参数
- type : 命令行参数应当被转换成的类型。
- 默认情况下,解析器会将命令行参数当作简单字符串读入。
- choices : 可用的参数的容器。
- 某些命令行参数应当从一组受限值中选择。
- help : 一个此选项作用的简单描述。
- Пример
import argparse
# 创建ArgumentParser对象
parser = argparse.ArgumentParser(description='add')
# 添加参数
parser.add_argument('--patch_size', type=int, default=100, help='patch size (default: 48)')
parser.add_argument('--dataset', default='DRIVE', choices=['DRIVE', 'CHASE', 'STARE', 'HRF'])
# 解析参数
args = parser.parse_args()
# 获得参数中的patch_size、dataset的值
print(args.patch_size,args.dataset)
# 打印出所有的参数
print(args)
print(type(args))
- Беги и беги результаты
- Можно обнаружить, что то, что возвращается, является объектом пространства имен, и нам нужно продолжить преобразование его в тип словаря Python, потому что его легче сохранить!
import argparse
# 创建ArgumentParser对象
parser = argparse.ArgumentParser(description='add')
# 添加参数
parser.add_argument('--patch_size', type=int, default=100, help='patch size (default: 48)')
parser.add_argument('--dataset', default='DRIVE', choices=['DRIVE', 'CHASE', 'STARE', 'HRF'])
# 解析参数
args = parser.parse_args()
args_vars = vars(args)
print(args_vars,type(args_vars))
- Беги и беги результаты