微调Inception模型后标签异常及TensorBoard标签提取咨询
问题分析与解决思路
咱们一步步拆解你的问题,先搞定训练流程的bug,再解决TensorBoard提取标签的需求:
一、训练流程的核心问题
你给出的训练命令里,所有路径类参数(--bottleneck_dir、--model_dir、--output_graph、--image_dir、--summaries_dir、--output_labels)都没填写具体路径值!这会直接导致两个关键问题:
- 脚本大概率沿用了flowers教程的默认路径/文件,比如你生成的自定义标签文件没被保存到预期位置,甚至被旧的flowers标签覆盖,测试时自然读不到
Islamic和baroque; - 虽然训练日志显示测试精度100%,但如果
--image_dir没指定你的饰品数据集,这个“完美精度”可能是在flowers数据集上跑出来的——不过你提到训练精度、交叉熵都正常,应该是--image_dir实际运行时填了,但其他参数漏了。
修复步骤
- 补全参数重新训练:
按照你的文件结构,把命令补全成类似这样(替换成你自己的实际路径):
注意:python retrain_new.py --bottleneck_dir=./my_bottlenecks --how_many_training_steps 2000 --model_dir=./inception_pretrained --output_graph=./my_retrained_graph.pb --image_dir=./jewelry_images --summaries_dir=./training_logs --output_labels=./my_custom_labels.txt./jewelry_images目录下必须有两个子文件夹,分别命名为Islamic和baroque,每个文件夹里放对应风格的饰品图片——这是retrain脚本要求的分类数据格式。 - 测试时指定新模型和标签:
运行标注脚本时,一定要明确指向你刚生成的模型和标签文件,别用默认的flowers文件。比如测试命令:python label_image.py --graph=./my_retrained_graph.pb --labels=./my_custom_labels.txt --image=./test_islamic_jewelry.jpg
二、从TensorBoard计算图提取自定义标签的方法
- 先启动TensorBoard,指向你的训练日志目录:
tensorboard --logdir=./training_logs - 在浏览器打开TensorBoard页面后,切换到Graphs标签页;
- 找到模型的输出节点(默认叫
final_result,也就是分类输出层); - 在搜索框输入
labels或string_tensor,找到存储标签列表的常量节点,展开后就能看到里面的Islamic和baroque标签内容; - 另外,你也可以切换到Scalars标签页,查看训练过程中按类别统计的准确率指标(比如
accuracy/Islamic、accuracy/baroque),这也能验证自定义标签是否被正确加载训练。
内容的提问来源于stack exchange,提问作者Ahmed Khairy
相关产品推荐
相关产品推荐

