【问题标题】:How can I pass command line parameters to tf.app.flags via PyCharm?如何通过 PyCharm 将命令行参数传递给 tf.app.flags?
【发布时间】:2017-03-25 12:43:48
【问题描述】:

当我通过 PyCharm 将命令行参数传递给我的 Python 程序时,我像往常一样在 sys.argv 中找到它们,但 tf.app.flags.FLAGS 却报告了空字符串。

如果我在 PyCharm 之外(从命令行)运行相同的程序,则 tf.app.flags.FLAGS 会报告预期的命令行参数值。

查看下面的屏幕截图,了解我如何在 PyCharm 中传递命令行参数。

这里有一个重现问题的简短程序:

import tensorflow as tf
from sys import argv

flags = tf.app.flags
FLAGS = flags.FLAGS

# command line flags
flags.DEFINE_string('input', '', "input file (.p)")

def main(_):
    print('Parameters', argv)
    print('input', FLAGS.input or 'is empty')

# parses flags and calls the `main` function above
if __name__ == '__main__':
    tf.app.run()

如果我从命令行运行它,我会得到预期的输出:

python3 issue.py --input my_data.p
Parameters ['issue.py', '--input', 'my_data.p']
input my_data.p

但是从 PyCharm 中,input 被设置为一个空字符串:

/usr/bin/python3.5 /home/fanta/workspace/CarND-Transfer-Learning-Lab/issue.py "--input my_data.p"
Parameters ['/home/fanta/workspace/CarND-Transfer-Learning-Lab/issue.py', '--input my_data.p']
input is empty

如何使用 Tensorflow 的 tf.app.flags.FLAGS 和 PyCharm 让 input 包含命令行参数?

【问题讨论】:

    标签: tensorflow pycharm


    【解决方案1】:

    不要将脚本参数放在引号"..." 中。随便写

    --input_data my_data.p
    

    在您屏幕截图的Script Parameter 字段中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-29
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 2017-04-20
      • 2012-10-01
      • 1970-01-01
      相关资源
      最近更新 更多