np.load(opt.test\u set)[()]是什么意思?

2024-06-12 06:46:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图理解以下代码:

...
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)[()]的含义


Tags: 代码testadddefaultparsermaintypenp
1条回答
网友
1楼 · 发布于 2024-06-12 06:46:53

它只是一个普通的^{} call,后跟一个空元组的索引操作([...]

以下是等效的,各部分分开:

result = np.load(opt.test_set)
key = ()
p = result[key]

为什么代码使用空元组作为键进入np.load()应该返回的内容,没有更多的上下文就不清楚了

np.load()不支持加载目录、句号,并且您发布的代码不会有任何不同。opt.test_set的值应该指向一个文件,而不是一个目录,请参阅文档“whatissupported”

一个快速的Google将我指向this GitHub repository,其中的指令似乎表明Python代码是由Lua脚本驱动的,Lua脚本显式地将test_set设置为特定的文件,请参见Testing existing models section

相关问题 更多 >