classify.py没有参数--print_results

时间:2016-05-17 00:23:05

标签: python caffe

我想在图像上运行测试并检测图像并返回结果,但我面临以下问题:

ubuntu@ip-172-31-6-58:~/caffe$ python python/classify.py  --print_results examples/images/cat.jpg fo
usage: classify.py [-h] [--model_def MODEL_DEF]
                   [--pretrained_model PRETRAINED_MODEL] [--gpu]
                   [--center_only] [--images_dim IMAGES_DIM]
                   [--mean_file MEAN_FILE] [--input_scale INPUT_SCALE]
                   [--raw_scale RAW_SCALE] [--channel_swap CHANNEL_SWAP]
                   [--ext EXT]
                   input_file output_file
classify.py: error: unrecognized arguments: --print_results
ubuntu@ip-172-31-6-58:~/caffe$ 

2 个答案:

答案 0 :(得分:1)

正如您在if log3(Float(n)) % 1 == 0.0 func log3(val: Float) -> Float 脚本中所看到的,没有classify.py选项:https://github.com/BVLC/caffe/blob/master/python/classify.py

此外,您没有传递必需的参数,即--print_resultsinput_file。也许您正在寻找的是output_file,它会将预测写入文件。

答案 1 :(得分:1)

  

有没有其他教程我可以得到正确的答案?

是的,这个论点是在另一个教程中。您可以从此处将此参数添加到classify.py: https://github.com/jetpacapp/caffe/blob/master/python/classify.py#L93

parser.add_argument(
    "--print_results",
    action='store_true',
    help="Write output text to stdout rather than serializing to a file."
)

您需要添加处理程序才能从此处查看结果: https://github.com/jetpacapp/caffe/blob/master/python/classify.py#L142

if args.print_results:
    with open(args.labels_file) as f:
      labels_df = pd.DataFrame([
           {
               'synset_id': l.strip().split(' ')[0],
               'name': ' '.join(l.strip().split(' ')[1:]).split(',')[0]
           }
           for l in f.readlines()
        ])
    labels = labels_df.sort('synset_id')['name'].values

    indices = (-scores).argsort()[:5]
    predictions = labels[indices]

    meta = [
               (p, '%.5f' % scores[i])
               for i, p in zip(indices, predictions)
           ]

    print meta

此代码输出数据结果带标签

P.S。我复制了代码部分以获得最佳视图