Tensorflow无法识别的参数\\

时间:2018-05-28 19:32:29

标签: tensorflow

您好我正在尝试在codelab中创建一个张量流ImageClassifer跟随tensorflow-for-poets2,而我正在尝试执行以下代码

  python label_image.py \ -- 
    graph=C:\Python_PG\ImageClassifier\poets\tf_files\retrained_graph.pb \ -- 
    image=C:\TensorFlow_ML\ImageClassifier\poets\tf_files\3021186b83bc90c2.png

我收到以下错误

usage: label_image.py [-h] [--image IMAGE] [--graph GRAPH] [--labels LABELS]
                      [--input_height INPUT_HEIGHT]
                      [--input_width INPUT_WIDTH] [--input_mean INPUT_MEAN]
                      [--input_std INPUT_STD] [--input_layer INPUT_LAYER]
                      [--output_layer OUTPUT_LAYER]
label_image.py: error: unrecognized arguments: \ \

我正在使用windows os。请帮我解决此错误

提前致谢

2 个答案:

答案 0 :(得分:3)

简答:将命令写入一行,不包含换行符转义序列。

更长的回答: 错误确切地说明了你做错了什么:你在教程中输入的只是一个换行符转义序列作为你命令的无法识别的参数。

你可以在命令中打破一行,就像在教程中一样。但是你添加了一个“ - ”(即空格,短划线,短划线,空格),这使得你的“\”不是一个换行符,而只是一个参数。您需要在换行符之前放置“\”(之前没有空格或短划线)或者只是放弃换行符和“\”,只需在一行中输入整个命令。

顺便说一下,它不是Tensorflow或Python相关的。这就是BASH的工作方式。

在那里你可能还有一个问题:如果你没有使用BASH(并且Windows路径建议你可能正在使用CMD.EXE,除非你使用类似git-bash之类的东西),转义序列可能会有所不同,即^ Windows命令行中的字符。更多关于此事:

https://superuser.com/questions/150116/how-can-i-insert-a-new-line-in-a-cmd-exe-command

PS。当然,参数语法是“--graph = ...”,而不是“ - <新行+几个空格> graph = ...”。

答案 1 :(得分:0)

我的代码中出现类似的错误-

!python tensorflow/tensorflow/examples/label_image/label_image.py \
    --graph = model_output/graph_v1.pb \
    --labels = model_output/labels_v1.txt \
    --input_layer='input' --output_layer='final_result' \
    --input_height=224 --input_width=224 \
    --image=path/13.jpg

label_image.py: error: unrecognized arguments: model_output/graph_v1.pb model_output/labels_v1.txt

您不能在'='符号前后添加空格。

!python tensorflow/tensorflow/examples/label_image/label_image.py \
    --graph=model_output/graph_v1.pb \
    --labels=model_output/labels_v1.txt \
    --input_layer='input' --output_layer='final_result' \
    --input_height=224 --input_width=224 \
    --image=path/13.jpg