运行Sentdex的TensorFlow脚本时遭遇两类报错,求解决方案
解决运行Sentdex脚本时遇到的两个错误
1. TensorFlow NotFoundError: data/mscoco_label_map.pbtxt 文件不存在
这个错误是因为脚本默认尝试从data/mscoco_label_map.pbtxt路径读取COCO数据集的标签映射文件,但该路径下没有对应文件,可按以下步骤修复:
- 先确认文件来源:
mscoco_label_map.pbtxt是TensorFlow Object Detection API的标准文件,通常存放在API目录的models/research/object_detection/data路径下(如果你是按官方流程部署的API)。 - 复制文件到指定位置:找到该文件后,将它复制到你的脚本所在目录下的
data文件夹中(如果data文件夹不存在,先手动创建)。 - 或修改脚本路径:打开脚本找到加载该文件的代码行,把相对路径
data/mscoco_label_map.pbtxt替换成文件的绝对路径(比如/home/your_username/models/research/object_detection/data/mscoco_label_map.pbtxt),确保TensorFlow能准确定位到文件。
2. Matplotlib 后端初始化错误
这个问题核心是matplotlib.use()的调用时机错误——它必须在第一次导入pyplot、pylab或任何Matplotlib后端相关模块之前执行,但你的脚本在第11行已经先导入了from matplotlib import pyplot as plt,导致后续use()调用失效,解决方法如下:
- 调整代码顺序:找到脚本中
matplotlib.use()的代码行,把它移动到所有Matplotlib相关导入的前面。示例:import matplotlib matplotlib.use('Agg') # 可替换为你需要的后端,比如'Qt5Agg'等 from matplotlib import pyplot as plt - 无需手动指定后端则删除调用:如果没有特殊的后端需求,直接删掉脚本中的
matplotlib.use()语句即可,Matplotlib会自动适配当前环境支持的后端(比如你的环境默认的'TkAgg'本身是可用的)。
内容的提问来源于stack exchange,提问作者wdjpng
相关产品推荐
相关产品推荐

