Ich versuche, mein Pytorch-Modell mit dem Argparse-Modul zu depolyn.
Es scheint, dass das in der App deklarierte argparse-Modul die Argumente von gunicorn ersetzt.
Und ich habe ein solches Problem wie folgt festgestellt:
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
Die Hinweise im obigen Abschnitt sind die Modellparameter in der App.
Danke~
Können Sie zeigen, wie Sie Ihre Anwendung erstellen und die CLI mit argparse
parsen?
Gunicorn ruft parse_args
in seiner eigenen Instanz von argparse
. Sie können eine benutzerdefinierte Anwendung implementieren, die etwas anderes tut, oder Sie können sicherstellen, dass sys.argv
mutiert oder Ihre eigenen Argumente an parse_args
, wenn Sie sie nach dem Start von Gunicorn aufrufen.
https://docs.python.org/3/library/argparse.html#the-parse-args-method
Können Sie zeigen, wie Sie Ihre Anwendung erstellen und die CLI mit
argparse
parsen?Gunicorn ruft
parse_args
in seiner eigenen Instanz vonargparse
. Sie können eine benutzerdefinierte Anwendung implementieren, die etwas anderes tut, oder Sie können sicherstellen, dasssys.argv
mutiert oder Ihre eigenen Argumente anparse_args
, wenn Sie sie nach dem Start von Gunicorn aufrufen.https://docs.python.org/3/library/argparse.html#the-parse-args-method
Vielen Dank für Ihre Antwort. Ich habe festgestellt, dass die Argumente von gunicorn möglicherweise nicht funktionieren, wenn ich das Argparse-Modul in meiner APP wie args = parser.parse_args(sys.argv)
.
Ich versuche es durch args, unknown = parser.parse_known_args()
zu ersetzen, alles geht gut.
Danke ~
Kann das Thema dann geschlossen werden? Benötigen Sie Hilfe, um Ihre eigenen Befehlszeilenschalter und die Gunicorn-Schalter zusammen zu analysieren?
Danke noch einmal!
Hilfreichster Kommentar
Vielen Dank für Ihre Antwort. Ich habe festgestellt, dass die Argumente von gunicorn möglicherweise nicht funktionieren, wenn ich das Argparse-Modul in meiner APP wie
args = parser.parse_args(sys.argv)
.Ich versuche es durch
args, unknown = parser.parse_known_args()
zu ersetzen, alles geht gut.Danke ~