def classify_images(images_dir = r"pet_images/", results_dic = None, model = 'resnet'):
for key in results_dic:
results_dic[key].append(classifier(images_dir + key, model).lower())
if results_dic[key][0] in results_dic[key][1]:
results_dic[key].append('1')
else:
results_dic[key].append('0')
classify_images(in_arg.dir, results, in_arg.arch)
此定义不起作用,因为images_dir字符串中的“ /”符号未传递给classifier()函数。当我将字符串直接放在分类器函数中时,它可以正常工作:
def classify_images(images_dir = r'pet_images/', results_dic = None, model = 'resnet'):
for key in results_dic:
results_dic[key].append(classifier('pet_images/' + key, model).lower())
if results_dic[key][0] in results_dic[key][1]:
results_dic[key].append('1')
else:
results_dic[key].append('0')
classify_images(in_arg.dir, results, in_arg.arch)
结果为:
FileNotFoundError: [Errno 2] No such file or directory: 'pet_imagesBasenji_00963.jpg'
有什么想法将函数定义作为默认参数放入时,为什么斜杠符号会消失?
答案 0 :(得分:0)
您可以在in_arg.dir
中查看print(in_arg.dir)
的内容,并查看其内容是否与您期望的相同,在这种情况下,您的期望是pet_images/
。
或者,您可以将定义的关键字参数用于:
def classify_images(images_dir = r"pet_images/", results_dic = None, model = 'resnet'):
for key in results_dic:
results_dic[key].append(classifier(images_dir + key, model).lower())
if results_dic[key][0] in results_dic[key][1]:
results_dic[key].append('1')
else:
results_dic[key].append('0')
classify_images(images_dir = r"pet_images/", results_dic = results, mode = in_arg.arch)
答案 1 :(得分:0)
@ Tgsmith61591解决方案完美运行。
import os
def classify_images(images_dir = r"pet_images/", results_dic = None, model = 'resnet'):
for key in results_dic:
results_dic[key].append(classifier(os.path.join(images_dir, key), model).lower())
if results_dic[key][0] in results_dic[key][1]:
results_dic[key].append('1')
else:
results_dic[key].append('0')
classify_images(in_arg.dir, results, in_arg.arch)