【问题标题】:How to set flags inside Jupyter Notebook or Python Shell如何在 Jupyter Notebook 或 Python Shell 中设置标志
【发布时间】:2018-08-15 03:20:34
【问题描述】:

我需要运行名为 train.py 的脚本,但我还需要设置 flas,方法是在 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 raise self.ParseError('String missing ending quote: %r' % (text,)) google.protobuf.text_format.ParseError: 123:17 : String missing ending 引用: '"/Users/cvsanbuenaventura/Documents/tensorflow/models/research/object_detection/train.record"'

所以我想在 Python Shell 或 Jupyter Notebook 中逐行调试。但是我还需要设置train_dir 标志。我该如何做到这一点?

【问题讨论】:

标签: python jupyter-notebook flags


【解决方案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)

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这个问题专门针对 jupyterhub /jupyter notebook。
    • 这是一篇很老的帖子。此外,如果您在parser.parse_args() 中提供参数,解析器确实可以在 Jupyter 中工作。如果您没有必需的参数,您可以使用parser.parse_args(args=[])。更多信息可以在这里找到:stackoverflow.com/questions/45823991/…
    猜你喜欢
    • 2021-06-14
    • 2020-03-04
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    相关资源
    最近更新 更多