littlebot
Published on 2025-04-08 / 3 Visits
0

【源码】基于TensorFlow和Slim框架的图像分类迁移训练项目

项目简介

本项目是系列课程第七周的课后作业,基于TensorFlow的Slim框架进行图像分类迁移训练。包含两项作业:一是使用Slim框架对InceptionV4模型进行迁移训练;二是学员自行实现DenseNet网络并插入Slim框架中训练。项目采用包含200个分类、共6W张图片的数据集,其中5W张为训练集,1W张为验证集,图片已预打包成tfrecord格式。

项目的主要特性和功能

  1. 迁移训练:利用预训练的InceptionV4模型开展迁移训练,可加速模型收敛,提升训练效率。
  2. 自定义网络训练:支持学员自定义实现DenseNet网络并训练,增强项目灵活性与扩展性。
  3. 多参数调整:允许尝试不同参数组合,如学习率、优化器等,体验其对训练准确率和收敛速度的影响。
  4. 结果评估:提供明确评估标准,InceptionV4模型经10个以上epoch训练,Top1(Accuracy)不低于80%,Top5(Recall)不低于90%;DenseNet网络训练运行成功且有准确率输出即视为及格。

安装使用步骤

环境准备

  1. 安装最新版本的TF - Slim:执行python -c "import tensorflow.contrib.slim as slim; eval = slim.evaluation.evaluate_once"验证安装是否成功。
  2. 安装TF - Slim图像模型库: bash cd $HOME/workspace 验证安装: cd $HOME/workspace/models/research/slim python -c "from nets import cifarnet; mynet = cifarnet.cifarnet"

下载数据集和预训练模型

  • 数据集:从https://www.tinymind.com/ai100/datasets/quiz - w7 下载。
  • 预训练的InceptionV4模型:从https://www.tinymind.com/ai100/datasets/inception - v4 - ckpt 下载。

作业1(InceptionV4迁移训练)

训练

sh python3 train_image_classifier.py --dataset_name=quiz --dataset_dir=/path/to/data --checkpoint_path=/path/to/inception_v4.ckpt --model_name=inception_v4 --checkpoint_exclude_scopes=InceptionV4/Logits,InceptionV4/AuxLogits/Aux_logits --train_dir=/path/to/train_ckpt --learning_rate=0.001 --optimizer=rmsprop --batch_size=32

train集验证

sh python3 eval_image_classifier.py --dataset_name=quiz --dataset_dir=/path/to/data --dataset_split_name=train --model_name=inception_v4 --checkpoint_path=/path/to/train_ckpt --eval_dir=/path/to/train_eval --batch_size=32 --max_num_batches=128

validation集验证

sh python3 eval_image_classifier.py --dataset_name=quiz --dataset_dir=/path/to/data --dataset_split_name=validation --model_name=inception_v4 --checkpoint_path=/path/to/train_ckpt --eval_dir=/path/to/validation_eval --batch_size=32 --max_num_batches=128

统一脚本

sh python3 train_eval_image_classifier.py --dataset_name=quiz --dataset_dir=/path/to/data --checkpoint_path=/path/to/inception_v4.ckpt --model_name=inception_v4 --checkpoint_exclude_scopes=InceptionV4/Logits,InceptionV4/AuxLogits/Aux_logits --optimizer=rmsprop --train_dir=/path/to/log/train_ckpt --learning_rate=0.001 --dataset_split_name=validation --eval_dir=/path/to/eval --max_num_batches=128

作业2(DenseNet训练)

训练

sh python3 train_image_classifier.py --dataset_name=quiz --dataset_dir=/path/to/data --model_name=densenet --train_dir=/path/to/train_ckpt_den --learning_rate=0.1 --optimizer=rmsprop --batch_size=16/path/to

train集验证

sh python3 eval_image_classifier.py --dataset_name=quiz --dataset_dir=/path/to/data --dataset_split_name=train --model_name=densenet --checkpoint_path=/path/to/train_ckpt_den --eval_dir=/path/to/train_eval_den --batch_size=32 --max_num_batches=128

validation集验证

sh python3 eval_image_classifier.py --dataset_name=quiz --dataset_dir=/path/to/data --dataset_split_name=validation --model_name=densenet --checkpoint_path=/path/to/train_ckpt_den --eval_dir=/path/to/validation_eval_den --batch_size=32 --max_num_batches=128

统一脚本

sh python3 train_eval_image_classifier.py --dataset_name=quiz --dataset_dir=/path/to/data --model_name=densenet --checkpoint_exclude_scopes=InceptionV4/Logits,InceptionV4/AuxLogits/Aux_logits --train_dir=/path/to/log/train_ckpt --learning_rate=0.1 --dataset_split_name=validation --eval_dir=/path/to/eval_den --max_num_batches=128

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】