Π― ΠΏΡΡΠ°ΡΡΡ Π΄Π΅ΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΌΠΎΠ΄Π΅Π»Ρ pytorch Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ argparse.
ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ 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
?
Gunicorn Π²ΡΠ·ΡΠ²Π°Π΅Ρ parse_args
Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ argparse
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅, ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ sys.argv
ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² parse_args
, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΠΎΠ²Π΅ΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Gunicorn.
https://docs.python.org/3/library/argparse.html#the -parse-args-method
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
argparse
?Gunicorn Π²ΡΠ·ΡΠ²Π°Π΅Ρ
parse_args
Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅argparse
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅, ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡsys.argv
ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π²parse_args
, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΠΎΠ²Π΅ΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Gunicorn.https://docs.python.org/3/library/argparse.html#the -parse-args-method
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ ΠΎΡΠ²Π΅Ρ. Π― ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ argparse Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ args = parser.parse_args(sys.argv)
, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ gunicorn ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΡΠΎΠ±ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° args, unknown = parser.parse_known_args()
, Π²ΡΠ΅ ΠΈΠ΄Π΅Ρ Ρ
ΠΎΡΠΎΡΠΎ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ~
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΠ³Π΄Π° Π·Π°ΠΊΡΡΡΡ Π²ΠΎΠΏΡΠΎΡ? ΠΠ°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ Π²Π°ΡΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ gunicorn?
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π΅ΡΠ΅ ΡΠ°Π·!
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ ΠΎΡΠ²Π΅Ρ. Π― ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ argparse Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
args = parser.parse_args(sys.argv)
, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ gunicorn ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ.ΠΡΠΎΠ±ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π°
args, unknown = parser.parse_known_args()
, Π²ΡΠ΅ ΠΈΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ.Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ~