研究一个图像分类的任务,现在的问题是对6类图像数据做分类任务,数据的特征是每一类都只有非常少的数据,并且存在类别不平均,在这种情况下我们的实验结果存在准确率的问题,对于少量数据,采用端到端从头开始训练的方法,模型学习到的特征很少,泛化能力不够,采用从ImageNet数据集训练得到的结果,我们可以采用预训练权重初始化特定的深度网络,如这里的Inception网路,采用slim轻量库构建模型,模型在三个公开数据集上的实例已经在github中可见,参照实例可用训练自定义的网络模型。
需要自己下载inceptionv3/v4的预训练权重,以及自定义的数据集。
构建数据训练代码,v3的训练和测试过程如下
python download_and_convert_data.py \
--dataset_name=flowers \
--dataset_dir=${DATASET_DIR}
# Fine-tune only the new layers for 1000 steps.
python train_image_classifier.py \
--train_dir=${TRAIN_DIR} \
--dataset_name=flowers \
--dataset_split_name=train \
--dataset_dir=${DATASET_DIR} \
--model_name=inception_v3 \
--checkpoint_path=${PRETRAINED_CHECKPOINT_DIR}/inception_v3.ckpt \
--checkpoi