我试图理解以下代码:
...
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)[()]
的含义
它只是一个普通的^{} call ,后跟一个空元组的索引操作(
[...]
)以下是等效的,各部分分开:
为什么代码使用空元组作为键进入
np.load()
应该返回的内容,没有更多的上下文就不清楚了np.load()
不支持加载目录、句号,并且您发布的代码不会有任何不同。opt.test_set
的值应该指向一个文件,而不是一个目录,请参阅文档“whatissupported”一个快速的Google将我指向this GitHub repository,其中的指令似乎表明Python代码是由Lua脚本驱动的,Lua脚本显式地将
test_set
设置为特定的文件,请参见Testing existing models section相关问题 更多 >
编程相关推荐