Model_fn оценщика включает аргумент params, но параметры не передаются в оценщик
Я пытаюсь запустить Object Detection API локально.
Я полагаю, что у меня все настроено, как описано в документах API TensorFlow Object Detection, однако, когда я пытаюсь запустить model_main.py, это предупреждение показывает, и модель не работает. (Я не могу точно сказать, тренируется модель или нет, потому что процесс не завершен, но дальнейшие журналы не появляются)
WARNING:tensorflow:Estimator's model_fn (<function create_model_fn.<locals>.model_fn at 0x0000024BDBB3D158>) includes params argument, but params are not passed to Estimator.
Код, который я передаю:
python tensorflow-models/research/object_detection/model_main.py \
--model_dir=training \
--pipeline_config_path=ssd_mobilenet_v1_coco.config \
--checkpoint_dir=ssd_mobilenet_v1_coco_2017_11_17/model.ckpt \
--num_tain_steps=2000 \
--num_eval_steps=200 \
--alsologtostderr
Что может быть причиной этого предупреждения?
Почему код кажется застрявшим?
Пожалуйста помоги!
2 ответа
Я столкнулся с той же проблемой и обнаружил, что это предупреждение не имеет ничего общего с проблемой того, что модель не работает. Я могу заставить модель работать, как показано это предупреждение.
Моя ошибка состояла в том, что я неправильно понял строку в документе running_locally.md
"$ {MODEL_DIR} указывает на каталог, в который будут записываться контрольные точки и события обучения"
Я изменил MODEL_DIR на {project directory}/models/model
где структура каталога:
+data
-label_map file
-train TFRecord file
-eval TFRecord file
+models
+ model
-pipeline config file
+train
+eval
И это сработало. Надеюсь, что это может помочь вам.
В моем случае у меня была такая же ошибка, потому что я находился внутри папки, где находились мои файлы.cpkt, также и контрольная точка предварительно обученных моделей.
Удаление этого файла появилось внутри файла.tar.gz, тренировка сработала.
Я также получил эту ошибку, и это потому, что я ранее обучал модель другому файлу набора данных /model/config, и предыдущие файлы ckpt все еще существовали в каталоге, с которым я работал, перемещая старые обучающие данные ckpt в другой каталог исправил проблему
Я также столкнулся с этим предупреждением. Я проверил nvidia-smi
и казалось, что обучение не началось. Также попытался реорганизовать выходной каталог, и это не сработало. После проверки Конфигурирования обучающего конвейера обнаружения объектов (официальный тензор потока) я обнаружил, что это проблема конфигурации. Решил проблему, добавив load_all_detection_checkpoint_vars: true
,
Ваш сценарий кажется хорошим. Одна вещь, которую мы должны заметить, это то, что новый model_main.py не будет печатать журнал тренировок (например, шаг обучения, потери, и т. Д.). Он будет печатать результаты оценки только после одного или нескольких эпизодов, которые будут много времени.
Таким образом, "процесс не завершен, но дальнейшие журналы не появляются" - это нормально. Вы можете подтвердить его выполнение, используя "nvidia-smi", чтобы проверить ситуацию с gpu, или используйте тензорную доску, чтобы проверить.