2017-08-15 161 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 

它將顯示可能的輸入和輸出層