2017-08-15 125 views
0

我使用TF-slim inception-v4从零开始训练模型。Tensorflow inception-v4分类图片

python train_image_classifier.py \ 
--train_dir=${TRAIN_DIR} \ 
--dataset_name=mydata \ 
--dataset_split_name=train \ 
--dataset_dir=${DATASET_DIR} \ 
--model_name=inception_v4 \ 
--clone_on_cpu=true \ 
--max_number_of_steps=1000 \ 
--log_every_n_steps=100 

# Run evaluation. 
python eval_image_classifier.py \ 
--checkpoint_path=${TRAIN_DIR} \ 
--eval_dir=${TRAIN_DIR} \ 
--dataset_name=mydata \ 
--dataset_split_name=validation \ 
--dataset_dir=${DATASET_DIR} \ 
--model_name=inception_v4 \ 
--batch_size=32 

# # # Fine-tune all the new layers for 500 steps. 
python train_image_classifier.py \ 
--train_dir=${TRAIN_DIR}/all \ 
--dataset_name=mydata \ 
--dataset_split_name=train \ 
--dataset_dir=${DATASET_DIR} \ 
--model_name=inception_v4 \ 
--clone_on_cpu=true \ 
--checkpoint_path=${TRAIN_DIR} \ 
--max_number_of_steps=1000 \ 
--log_every_n_steps=100 \ 
--batch_size=32 \ 
--learning_rate=0.0001 \ 
--learning_rate_decay_type=fixed \ 
--save_interval_secs=600 \ 
--save_summaries_secs=600 \ 
--optimizer=rmsprop \ 
--weight_decay=0.00004 

然后冻结图:

python export_inference_graph.py \ 
--alsologtostderr \ 
--model_name=inception_v4 \ 
--is_training=True \ 
--labels_offset=999 \ 
--output_file=${OUTPUT_DIR}/unfrozen_inception_v4_graph.pb \ 
--dataset_dir=${DATASET_DIR} 

#NEWEST_CHECKPOINT=$(cat ${TRAIN_DIR}/all/checkpoint |head -n1|awk -F\" '{print $2}') 
NEWEST_CHECKPOINT=$(ls -t1 ${TRAIN_DIR}/all|grep model.ckpt |head -n1) 
echo ${NEWEST_CHECKPOINT%.*} 
python ${OUTPUT_DIR}/tensorflow/tensorflow/python/tools/freeze_graph.py \ 
--input_graph=${OUTPUT_DIR}/unfrozen_inception_v4_graph.pb \ 
--input_checkpoint=${TRAIN_DIR}/all/${NEWEST_CHECKPOINT%.*} \ 
--input_binary=true \ 
--output_graph=${OUTPUT_DIR}/frozen_inception_v4.pb \ 
--output_node_names=InceptionV4/Logits/Predictions \ 
--input_meta_graph=True 

这一切后,我得到了一个frozen_inception_v4.pb文件。

本例https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/label_image/label_image.py inception_v4的输入层是什么? 有谁知道如何解决这个问题?

回答

0

这取决于你使用的slim的特定实现。看他们在哪里定义输入,看看张量的名称是什么。

-1

尝试这种情况:

bazel build tensorflow/tools/graph_transforms:summarize_graph 

bazel-bin/tensorflow/tools/graph_transforms/summarize_graph \ 
--in_graph=/path/to/your_frozen.pb 

它将显示可能的输入和输出层