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, или используйте тензорную доску, чтобы проверить.

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