使用slim框架对inception_v3做一个迁移训练

本文介绍如何使用TensorFlow的slim框架和Inception_v3模型对Quiz数据集进行训练和评估,详细描述了从数据预处理到模型训练及验证的全过程,并分析了训练结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I0819 21:12:14.440093 140209868093248 evaluation.py:167] Evaluation [12/128]
I0819 21:12:16.967612 140209868093248 evaluation.py:167] Evaluation [24/128]
I0819 21:12:19.479909 140209868093248 evaluation.py:167] Evaluation [36/128]
I0819 21:12:22.123263 140209868093248 evaluation.py:167] Evaluation [48/128]
I0819 21:12:24.798159 140209868093248 evaluation.py:167] Evaluation [60/128]
I0819 21:12:27.488651 140209868093248 evaluation.py:167] Evaluation [72/128]
I0819 21:12:30.172214 140209868093248 evaluation.py:167] Evaluation [84/128]
I0819 21:12:32.817117 140209868093248 evaluation.py:167] Evaluation [96/128]
I0819 21:12:35.469249 140209868093248 evaluation.py:167] Evaluation [108/128]
I0819 21:12:38.160501 140209868093248 evaluation.py:167] Evaluation [120/128]
I0819 21:12:39.931193 140209868093248 evaluation.py:167] Evaluation [128/128]
eval/Recall_5[0.957519531]
eval/Accuracy[0.845214844]
I0819 21:12:40.325986 140209868093248 evaluation.py:275] Finished evaluation at 2019-08-19-21:12:40

以上为验证集部分log输出,准确率达到0.84,top5召回达到0.95

I0819 21:12:05.423418 140209868093248 saver.py:1280] Restoring parameters from ./train/model.ckpt-6865

使用了step-6865处的checkpoint

模型训练过程描述

数据准备

使用tf官网下slim框架自带的download_and_convert_data.py脚本对数据集处理,生成训练集和验证集的.tfrecord文件.,以及保存标签的label.txt文件,此处使用自己下载好的quiz数据集,因此对脚本文件做修改
from datasets import convert_quiz
......
#convert_quiz.py的修改
    elif FLAGS.dataset_name == 'quiz':
        convert_quiz.run(FLAGS.dataset_dir)

#脚本运行命令
python3 download_and_convert_data.py --dataset_dir=./train -- dataset_name=quiz
使用官网自带的train_image_classifier.py脚本对训练集进行训练
python3 train_image_classifier.py --dataset_name=quiz --dataset_dir=./train --checkpoint_path=./inception_v3.ckpt
 --model_name=inception_v3 --checkpoint_exclude_scopes=InceptionV3/Logits,InceptionV3/AuxLogits --train_dir=./train 
--learning_rate=0.001 --optimizer=rmsprop --batch_size=32
inception_v3.ckpt为tf官网提供的一个预训练checkpoint,为了匹配本训练集标签,除去原模型logits层和AuxLogits,学习率为0.001, 每个batch为32张图片。
同样使用官网自带的eval_image_classifier.py脚本文件对验证集验证
python3 eval_image_classifier.py --dataset_name=quiz --dataset_dir=./train --dataset_split_name=validation 
--model_name=inception_v3 --checkpoint_path=./train --eval_dir=./eval --batch_size=32 --max_num_batches=128
–dataset_dir为校验集路径,–model_name=inception_v3使用inception_v3作校验,检查点在之前训练网络时训练集所在文件夹下自动生成,–eval_dir=./eval 输出校验日志,32张图为一个batch,对128个batch做校验。

以上即为基于slim框架的整个训练过程,训练完后导出模型

sh export_and_freeze.sh
得到freezed.label和freeze.pd两个文件,分别用于存放标签和带有参数的计算图。

tensorboard解读

clone_loss:损失函数曲线:可见训练是有限的,损失一直在下降,在6865step的ckpt处下降至3左右,但并没有走平,继续训练可以进一步优化模型

在这里插入图片描述

sparsity:计算图节点处权值的稀疏度,较好的稀疏度可以保证模型不会过拟合,也提高了模型的泛化能力。

在这里插入图片描述

total_loss:加上正则损失后的总损失

在这里插入图片描述

DISTRIBUTIONS:计算图每个节点处权重的分布

在这里插入图片描述

histgram:每一层权重参数变化情况

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值