TensorFlow Slim的使用

1)准备数据集,修改download_and_convert_flowers.py将数据集转化成tfrecord格式
第43行 _NUM_VALIDATION = 300 #修改为验证集的图片数量
第49行 _NUM_SHARDS = 4 #修改为要生成的TFRECORD的数量
第84行 把flower_photo修改为数据所存放的文件夹名称wk_data
第102行 修改output_filename的输出tfrecord名称,将flowers修改为wk
注释掉190行,不让其下载数据集
注释掉第210行,不删除压缩文件和解压缩后的文件
执行命令以下命令后会在data文件夹生成4个train和4个val的tfrecord以及一个lables.txt文件
python download_and_convert_data.py
–dataset_name=wk
–dataset_dir=/home/yonghui.cai/wukong_project/card_40

2)修改datasets/dataset_factory.py,在28行后添加注册数据集名字,如:
‘wukong’: wk_action

3)在datasets文件夹中,复制flowers.py并修改名字如wk_action.py,修改内容:
第32行:FILE_PATTERN = 'wk%s_tfrecord’
第34行:SPLITS_TO_SIZES = {‘train’: 41652, ‘validation’: 4628} #修改训练集和验证集的数量
第36行: _NUM_CLASSES = 40 #修改为数据集的类别个数
第40行:‘label’: ‘A single integer between 0 and 39’ #同上

4)添加slim环境进python环境变量中
export PYTHONPATH= P Y T H O N P A T H : PYTHONPATH: PYTHONPATH:{PWD}/slim

5)训练模型:基于mobilenetv2模型进行finetune
DATA_PATH="/home/yonghui.cai/wukong_project/card_40"
TFRECORD_PATH=“wk_tfrecord”
MODEL_PATH=“models”
TRAIN_PATH=“fine_tune_logs”

python train_image_classifier.py
–train_dir= D A T A P A T H / {DATA_PATH}/ DATAPATH/{MODEL_PATH}/KaTeX parse error: Undefined control sequence: \ at position 14: {TRAIN_PATH} \̲ ̲ --dataset_nam…{DATA_PATH}/KaTeX parse error: Undefined control sequence: \ at position 17: …TFRECORD_PATH} \̲ ̲ --model_name=…{DATA_PATH}/${MODEL_PATH}/mobilenet_v2_1.0_224/mobilenet_v2_1.0_224.ckpt
–checkpoint_exclude_scopes=MobilenetV2/Logits,MobilenetV2/AuxLogits
–max_number_of_steps=1000000
–batch_size=64
–train_image_size=224
–learning_rate=0.001
–learning_rate_decay_type=fixed
–save_interval_secs=300
–save_summaries_secs=60
–log_every_n_steps=10
–optimizer=rmsprop
–weight_decay=0.00004
–num_preprocessing_threads=4
–num_clones=2

6)验证模型
DATA_PATH = “/home/yonghui.cai/wukong_project/card_40”
MODEL_PATH = “models”
python eval_image_classify.py
–alsotogtostderr
–checkpoint_path= D A T A P A T H / {DATA_PATH}/ DATAPATH/{MODEL_PATH}/model.ckpt-44584
–dataset_dir=${DATA_PATH}/wk_val_tfrecord
–dataset_name=wukong
–model_name=mobilenet_v2

7)导出模型成.pb文件
MODEL_PATH="/home/yonghui.cai/wukong_project/card_40/models/fine_tune_logs"
python export_inference_graph.py
–alsologtostderr
–model_name=mobilenet_v2
–dataset_dir=/home/yonghui.cai/wukong_project/card_40/wk_train_tfrecord
–image_size=224
–dataset_name=wukong
–output_file=./wk_mobilenetv2_inf_graph.pb

8)固化模型作为推理模型文件
MODEL_PATH="/home/yonghui.cai/wukong_project/card_40/models/fine_tune_logs"
python ~/env/tensorflow-1.12/lib/python3.6/site-packages/tensorflow/python/tools/freeze_graph.py
–input_graph=./wk_mobilenetv2_inf_graph.pb
–input_checkpoint=${MODEL_PATH}/model.ckpt-44584
–input_binary=true
–output_node_names=MobilenetV2/Predictions/Reshape_1
–output_graph=./wk_mobilenetv2_frozen.pb

你可能感兴趣的:(tensorflow)