«ValueError: изображение с идентификатором {} уже добавлено» при выполнении оценки в наборе данных OpenImage

Я использую API обнаружения объектов Tensorflow для оценки модели SSD_mobilenet в наборе данных OpenImageV5. Я использовал предустановленную модель, представленную в их модельный зоопарк. Для конфигурации конвейера я использую конвейер по умолчанию (ssd_mobilenet_v2_oid_v4), доступный здесь.

Когда я запускаю оценку, используя следующую команду:

python object_detection/model_main.py --alsologtostderr --run_once --checkpoint_dir=/Path/TO/ssd_mobilenet_v2_oid_v4_2018_12_12/ --model_dir=eval/ --pipeline_config_path=PATH/TO/ssd_mobilenet_v2_oid_v4.config

Я получаю эту ошибку:

2019-05-28 12:26:09.658946: W tensorflow/core/framework/op_kernel.cc:1306] Invalid argument: ValueError: Image with id 1407414044 already added.
Traceback (most recent call last):

  File "/bigSSD/tensorflow_model/v_env_tf_1.8/lib/python3.6/site-packages/tensorflow/python/ops/script_ops.py", line 157, in __call__
    ret = func(*args)

  File "/bigSSD/tensorflow_model/models/research/object_detection/utils/object_detection_evaluation.py", line 432, in update_op
    self.add_single_ground_truth_image_info(image_id, single_example_dict)

  File "/bigSSD/tensorflow_model/models/research/object_detection/utils/object_detection_evaluation.py", line 600, in add_single_ground_truth_image_info
    raise ValueError('Image with id {} already added.'.format(image_id))

ValueError: Image with id 1407414044 already added.

Я изменил sample_1_of_n_examples с 10 на 100 и 1000, но все равно получил ту же ошибку.

не могли бы вы вставить сюда свой файл конфигурации, особенно в eval_config, num_examples должен быть равен размеру вашего оценочного набора данных.

danyfang 28.05.2019 23:19
num_examples устарел, и у меня его нет в файле конфигурации. Я использовал образец файла конфигурации, предоставленный API обнаружения объектов (здесь).
Shahryar 29.05.2019 05:08
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
614
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

для более быстрой_rcnn_inception_resnet_v2_atrous_oid_v4.config я изменил

eval_config 
{
  metrics_set: "open_images_V2_detection_metrics"
}

к

eval_config {
  metrics_set: "open_images_V2_detection_metrics"
  num_examples: 383 #correspond to my test images
}

затем запустите оценку с помощью eval.py, используя следующую команду:

python eval.py --logtostderr --checkpoint_dir=path/to/checkpoint --eval_dir=path/to/eval_dir --pipeline_config_path=path/to/pretrained_model.config

и моя ошибка решена.

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