Jupyter-notebook运行报错ModuleNotFoundError: No module named 'object_detection'咨询
问题背景
- 问题持续时间:2天
- 触发场景:执行模型训练、导出TFRecords操作时出现报错
- 运行环境:通过Jupyter Notebook启动的Anaconda3环境,搭载Python 3.9版本
- 报错信息已同步核查
解决方案
- 校验TFRecord写入逻辑的类型匹配
绝大多数这类报错都是写入tf.train.Example时,feature声明类型和实际传入值类型不匹配导致,比如本该传入int64的字段传入了float、字符串没有正确转为bytes格式。可参考以下标准feature转换函数统一处理:import tensorflow as tf # 字节类型转换 def _bytes_feature(value): if isinstance(value, type(tf.constant(0))): value = value.numpy() return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value])) # 整数类型转换 def _int64_feature(value): return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) # 浮点数类型转换 def _float_feature(value): return tf.train.Feature(float_list=tf.train.FloatList(value=[value])) - 检查TensorFlow版本兼容性
Python 3.9适配的TensorFlow正式版本范围为2.5~2.15,可在环境中运行pip show tensorflow查看当前安装版本,版本不匹配时可执行指定版本安装命令:pip install tensorflow==2.10.0(可根据自身业务需求选择对应适配版本) - 确认Jupyter内核匹配
部分情况下Jupyter会默认启动全局内核而非Anaconda对应虚拟环境的内核,可在Notebook中运行import sys; print(sys.executable)打印当前Python路径,确认和你使用的Anaconda环境路径一致,避免内核错配导致依赖调用异常 - 增加坏数据兼容逻辑
导出TFRecords前遍历原始数据集时,增加异常捕获逻辑,跳过损坏、格式异常的样本,避免单条坏数据中断整个导出流程
内容的提问来源于stack exchange,提问作者EvilTwin
相关产品推荐
相关产品推荐

