我尝试使用 argparse 模块解聚我的 pytorch 模型。
看来应用程序中声明的 argparse 模块将替换 gunicorn 的参数。
我遇到过这样的问题:
usage: gunicorn [-h] [--mode MODE] [--batch_size BATCH_SIZE] [--warmup WARMUP]
[--early_stop EARLY_STOP] [--seed SEED] [--t_total] [--lr LR]
[--lr_decay_epochs LR_DECAY_EPOCHS]
[--lr_decay_rate LR_DECAY_RATE]
[--weight_decay_rate WEIGHT_DECAY_RATE] [--bert_lr BERT_LR]
[--num_epochs NUM_EPOCHS] [--model_dir MODEL_DIR]
[--model_path MODEL_PATH] [--num_workers NUM_WORKERS]
[--train_dataset TRAIN_DATASET] [--eval_dataset EVAL_DATASET]
[--test_dataset TEST_DATASET] [--bert_low_case BERT_LOW_CASE]
[--bert_type BERT_TYPE] [--bert_hidden_size BERT_HIDDEN_SIZE]
[--bert_dropout BERT_DROPOUT]
[--bert_mention_max_len BERT_MENTION_MAX_LEN]
[--bert_max_len BERT_MAX_LEN]
[--bert_char_max_len BERT_CHAR_MAX_LEN]
[--bert_entity_threshold BERT_ENTITY_THRESHOLD]
[--bert_freeze] [--bert_threshold BERT_THRESHOLD]
[--bert_adam] [--enhance_mention] [--interaction]
[--context_dropout CONTEXT_DROPOUT]
[--mention_dropout MENTION_DROPOUT]
[--rnn_hidden_size RNN_HIDDEN_SIZE]
[--rnn_num_layers RNN_NUM_LAYERS] [--rnn_dropout RNN_DROPOUT]
[--rnn_num_dirs RNN_NUM_DIRS]
[--cnn_embedding_dim CNN_EMBEDDING_DIM]
[--cnn_output_dim CNN_OUTPUT_DIM] [--cnn_filters CNN_FILTERS]
[--hierarchy_alpha HIERARCHY_ALPHA]
gunicorn: error: unrecognized arguments: -w 1 -b 0.0.0.0:3101 --reload -t 500 api:app
上一节中的提示是应用程序中的模型参数。
谢谢~
你能展示你是如何创建你的应用程序并使用argparse
解析 CLI 的吗?
Gunicorn 在自己的argparse
实例上调用parse_args
argparse
。 您可以实现一个自定义应用程序来做其他事情,或者您可以确保改变sys.argv
,或者将您自己的参数传递给parse_args
,如果您在 Gunicorn 启动后调用它。
https://docs.python.org/3/library/argparse.html#the -parse-args-method
你能展示你是如何创建你的应用程序并使用
argparse
解析 CLI 的吗?Gunicorn 在自己的
argparse
实例上调用parse_args
argparse
。 您可以实现一个自定义应用程序来做其他事情,或者您可以确保改变sys.argv
,或者将您自己的参数传递给parse_args
,如果您在 Gunicorn 启动后调用它。https://docs.python.org/3/library/argparse.html#the -parse-args-method
感谢您的回复,我发现如果我在我的 APP 中使用 argparse 模块,如args = parser.parse_args(sys.argv)
,gunicorn 的参数可能不起作用。
我尝试用args, unknown = parser.parse_known_args()
替换它,一切顺利。
谢谢~
那么问题可以关闭吗? 您是否需要帮助来解析您自己的命令行开关和 gunicorn 开关?
再次感谢!
最有用的评论
感谢您的回复,我发现如果我在我的 APP 中使用 argparse 模块,如
args = parser.parse_args(sys.argv)
,gunicorn 的参数可能不起作用。我尝试用
args, unknown = parser.parse_known_args()
替换它,一切顺利。谢谢~