项目简介
本项目是系列课程第七周的课后作业,基于TensorFlow的Slim框架进行图像分类迁移训练。包含两项作业:一是使用Slim框架对InceptionV4模型进行迁移训练;二是学员自行实现DenseNet网络并插入Slim框架中训练。项目采用包含200个分类、共6W张图片的数据集,其中5W张为训练集,1W张为验证集,图片已预打包成tfrecord格式。
项目的主要特性和功能
- 迁移训练:利用预训练的InceptionV4模型开展迁移训练,可加速模型收敛,提升训练效率。
- 自定义网络训练:支持学员自定义实现DenseNet网络并训练,增强项目灵活性与扩展性。
- 多参数调整:允许尝试不同参数组合,如学习率、优化器等,体验其对训练准确率和收敛速度的影响。
- 结果评估:提供明确评估标准,InceptionV4模型经10个以上epoch训练,Top1(Accuracy)不低于80%,Top5(Recall)不低于90%;DenseNet网络训练运行成功且有准确率输出即视为及格。
安装使用步骤
环境准备
- 安装最新版本的TF - Slim:执行
python -c "import tensorflow.contrib.slim as slim; eval = slim.evaluation.evaluate_once"
验证安装是否成功。 - 安装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】