【问题标题】:Running Tensorflow script from another location从另一个位置运行 TensorFlow 脚本
【发布时间】:2018-08-03 13:22:37
【问题描述】:

我已经创建了 Tensorflow 图像分类器,应该使用另一个 python 脚本调用图像分类器。

我试过 os.system() 但我不能只调用 Tensorflow 脚本,因为它取决于 Tensorflow 脚本位置中的多个文件。所以我必须在主脚本(第二个python脚本)中包含所有带有分类器脚本的文件。

最好的方法是什么?

脚本运行时:

从其他位置运行时出现脚本错误:

【问题讨论】:

    标签: python python-3.x tensorflow image-processing runtime-error


    【解决方案1】:

    您是否尝试过 Python Subprocess 而不是 os.system

    How do you use subprocess.check_output() in Python?你可以看到这个简单的演示:

    py2.py:

    import sys
    print sys.argv
    

    py3.py:

    import subprocess
    py2output = subprocess.check_output(['python', 'py2.py', '-i', 'test.txt'])
    print('py2 said:', py2output)
    

    运行它:

    $ python3 py3.py
    py2 said: b"['py2.py', '-i', 'test.txt']\n"
    

    更新:

    我认为您的问题在于您需要在运行 python 脚本之前指定/设置正确的文件夹路径。例如:

    假设您有以下文件夹结构:

    /root/project/script.py
    /root/project/data/file.txt
    

    如果在您的 python 脚本中使用 ./data/file.txt 之类的相对路径加载文件,则需要在 project 文件夹中运行脚本。 如果你在 root 文件夹中运行它,像这样:

    /root$ python project/script.py
    

    脚本失败,因为它试图在 root 文件夹中查找 data/file.txt。 您可以在运行 python 脚本之前使用 cd 命令更改当前目录。您可以在调用 os.system 时执行此操作,如下所示:

    os.system("cd project && python script.py") # for my example case
    

    【讨论】:

      【解决方案2】:

      无论您从哪里调用 Python 脚本,脚本中的所有相对路径都将基于。即,您从第一张图像中的项目文件夹中调用了脚本,因此指向 project_folder/tf_files/... 的链接正常工作,而您稍后从其他地方调用了它,因此符号链接被弄乱了。您的脚本试图找到 elsewhere/tf_files/...,但该子文件夹不存在。

      您可以编辑脚本,使所有路径始终是绝对的(以/home/... 开头),那么就没有办法混淆

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-13
        • 2016-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-30
        相关资源
        最近更新 更多