如何解决这段Python图像分类预测代码抛出的KeyError: 'c2 '报错
KeyError问题解决方法
报错原因
触发报错的核心原因是你从data_test中取到的预测标签值'c2 '末尾携带多余空白字符,和你从class_name_map.json加载的字典info中的key不匹配,字典查找不到对应值就抛出了KeyError。
解决方案
你可以根据需求选择以下任意一种方案修复:
- 快速临时修复:在取标签值的时候统一去除前后空白字符,将报错行修改为如下内容:
new_name = data_test.iloc[i, 0].split("/")[-1].split(".")[0] + "_" + info[data_test.iloc[i, 1].strip()] + ".jpg" - 根源性修复:在生成
data_test预测结果的环节,统一给所有预测标签做去除前后空白的处理,避免后续其他逻辑也出现同类匹配问题。 - 增加容错处理:使用字典的
get方法设置默认值,即使出现未匹配的标签也不会导致程序直接中断,方便后续批量排查异常标签:# 未匹配到的标签会统一用unknown_class作为占位 new_name = data_test.iloc[i, 0].split("/")[-1].split(".")[0] + "_" + info.get(data_test.iloc[i, 1].strip(), "unknown_class") + ".jpg"
内容的提问来源于stack exchange,提问作者rathod karansinh
相关产品推荐
相关产品推荐

