np.load(opt.test_set)[()]是什么意思?

时间:2018-09-11 20:44:17

标签: python numpy

我正在尝试理解以下代码:

...
parser=argparse.ArgumentParser
parser.add_argument('--test_set', default='liberty', type=str)
parser.add_argument('--test_matches', default='xxxxx.txt', type=str)
...
def main(args):
    opt=parser.parse_args(args)
    ...
    def load_provider():
        p=np.load(opt.test_set)[()]
        for i.t in enumerate(['matches', 'nonmatches']):
            p[t] =p['match_data'][opt.test_matches][i]
        return p
...
if __name__=='__main__':
    main(sys.argv[1:])

因此,当我克隆代码并下载数据集时,liberty是一个包含bmp图像和txt文件的文件夹,因此当我运行代码时,出现以下错误:

IsADirectoryError: [Errno 21] Is a directory: 'liberty'

我知道np.load应该读取特定文件而不是目录,但是我试图了解np.load(opt.test_set)[()]的含义。

1 个答案:

答案 0 :(得分:0)

这只是常规的numpy.load() call,后面是带有空元组的索引操作(printOverridableCompileTimeType)。

以下等效,但各部分分开:

   .
   .
   .
   "query" : {
     "bool": {
       "should" {
        …
       }
     }
   }

在没有更多上下文的情况下,为什么代码为什么要使用空元组作为要返回的[...]的键,这是不清楚的。

result = np.load(opt.test_set) key = () p = result[key] 不支持加载目录,句号,并且您发布的代码没有任何不同。 np.load()的值应指向文件,而不是目录,请参阅文档 受支持。

一个快速的Google将我指向this GitHub repository,其中的指示似乎表明Python代码是由Lua脚本驱动的,该脚本明确将np.load()设置为特定文件,请参见{{3} }。