如何在 Jupyter Notebook 或 Python Shell 中设置标志

Cha*_*ine 5 python flags jupyter-notebook

我需要运行名为的脚本train.py,但还需要通过在 bash 中发出以下命令来设置 flas:

\n\n
train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而,它捕获了这个错误:

\n\n
\n

文件\n“/Users/cvsanbuenaventura/miniconda3/lib/python3.6/site-packages/google/protobuf/text_format.py”,\n第1288行,在_ConsumeSingleByteString\n引发self.ParseError(\'字符串缺少结束引号: %r\' % (text,)) google.protobuf.text_format.ParseError: 123:17 : 字符串缺少结尾\n 引用:\n \'"/Users/cvsanbuenaventura/Documents/tensorflow/models/research/object_detection/ train.record\xe2\x80\x9c\'

\n
\n\n

所以我想在Python Shell或Jupyter Notebook中逐行调试。不过我还需要设置train_dir标志。我该如何实现这个目标?

\n

Kuz*_*lev 5

如果其他人遇到无法向 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)
Run Code Online (Sandbox Code Playgroud)


Naz*_*han -2

根据文档,您可以使用 argparse 将标志添加到命令行参数。下面给出一个例子:

parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
Run Code Online (Sandbox Code Playgroud)