Как установить флаги внутри Jupyter Notebook или Python Shell

Мне нужно запустить мой скрипт с именем train.py но мне также нужно настроить flash, выполнив эту команду в bash:

train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config

Тем не менее, он ловит эту ошибку:

Файл "/Users/cvsanbuenaventura/miniconda3/lib/python3.6/site-packages/google/protobuf/text_format.py", строка 1288, в _ConsumeSingleByteString повысить self.ParseError('Строка, отсутствующая конечная кавычка: %r' % (текст,)) google.protobuf.text_format.ParseError: 123:17: конечная кавычка отсутствует: '"/Users/cvsanbuenaventura/Documents/tensorflow/models/research/object_detection/train.record“'

Поэтому я хочу построчно отлаживать в Python Shell или Jupyter Notebook. Однако мне также нужно установить train_dir флаг. Как мне это сделать?

1 ответ

Если у кого-то еще есть проблема с невозможностью добавлять флаги в IPython/Jupyter, вот быстрое решение.

# import sys, app and flags
import sys
sys.argv = " --train_dir training/".split(" ")
from absl import app, flags

# add the flags you need:
flags.FLAGS.train_dir = 'training/'

# add the actual code to a function
def main(argvs):
    # the code you want to debug
app.run(main)

Согласно документации, вы можете добавить флаги к аргументам командной строки с помощью argparse. Пример приведен ниже:

parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
Другие вопросы по тегам