Как я настраиваю MobilenetV1 с моим собственным набором данных

Примечание: я думаю, что понимаю шаги по тонкой настройке модели, я просто не знаю, какие именно параметры следует использовать для запуска этих сценариев (недостаток знаний в самой модели, см. Выделенные части).

Я пытаюсь настроить mobilenetv1_1.0_224 с помощью набора данных Oxford IIIT Pet, существующего файла контрольных точек, уже обученного с классами ImageNet 1000, и я хочу добавить еще 37 классов (25 собак, 12 кошек) для создания модели 1037 классов.

Вот скрипт, который я использовал для тонкой настройки модели:

(tensorflow) ubuntu@haoxi911:~/tensorflow/models/research/slim$ 
python train_image_classifier.py 
--train_dir=/tmp/oxford-iiit-pet/mobile_v1_1.0_224_finetune 
--dataset_dir=/tmp/oxford-iiit-pet 
--dataset_name=oxford_iiit_pets 
--dataset_split_name=train 
--model_name=mobilenet_v1 
--checkpoint_path=/tmp/mobilenet_v1_1.0_224/mobilenet_v1_1.0_224.ckpt 
--checkpoint_exclude_scopes=MobilenetV1/Logits/Conv2d_1c_1x1/weights,MobilenetV1/Logits/Conv2d_1c_1x1/biases 
--trainable_scopes=MobilenetV1/Logits/Conv2d_1c_1x1/weights,MobilenetV1/Logits/Conv2d_1c_1x1/biases 
--clone_on_cpu=True

Вот скрипт, который я использовал, чтобы заморозить график:

(tensorflow) ubuntu@haoxi911:~/tensorflow/tensorflow/tensorflow/python/tools$ 
python freeze_graph.py 
--input_graph=/tmp/mobilenet_v1_1.0_224/unfrozen_graph.pb 
--input_checkpoint=/tmp/oxford-iiit-pet/mobile_v1_1.0_224_finetune/model.ckpt-0 
--input_binary=true 
--output_graph=/tmp/oxford-iiit-pet/mobile_v1_1.0_224_finetune/frozen_graph.pb 
--output_node_names=MobilenetV1/Predictions/Reshape_1

Вот ошибка, с которой я столкнулся при замораживании графика:

InvalidArgumentError: Assign requires shapes of both tensors to match. 
lhs shape= [1,1,1024,1001] rhs shape= [1,1,1024,37]
[[Node: save/Assign_136 = Assign[T=DT_FLOAT, _class=
["loc:@MobilenetV1/Logits/Conv2d_1c_1x1/weights"], use_locking=true, validate_shape=true, 
_device="/job:localhost/replica:0/task:0/device:CPU:0"]
(MobilenetV1/Logits/Conv2d_1c_1x1/weights, save/RestoreV2_136)]]

Я считаю, что проблема в --checkpoint_exclude_scopes а также --trainable_scopes, Из документа TensorFlow эти параметры должны быть установлены в InceptionV3/Logits,InceptionV3/AuxLogits для InceptionV3, так что насчет MobilenetV1?

0 ответов

Другие вопросы по тегам