Как установить флаги внутри 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')