tf.image.non_max_suppression дает неинициализированный тензор

Я использую тензор потока tf.image.non_max_suppression в сети Faster-RCNN. График тензорного потока строится успешно и также работает без ошибок, но при запуске графа выходные данные являются пустыми тензорами, размер которых зависит от входных данных, имеющих размер 0 (например, я получаю выходные тензоры формы (0,4)). Так что я использовал tfdbg инструмент, чтобы увидеть, что происходит. Я обнаружил, что значение тензора Uninitialized tensor для tf.image.non_max_suppression соч. Все последующие тензоры, в зависимости от выходных данных операции nms, также отображаются как Unintialized tensor,

Я обучил эту сеть Faster-RCNN и сохранил вес, используя tf.train.Saver(..).save(..), Когда я обучал сеть, я использовал функцию NumPy Python для NMS, и она была подключена к сети с помощью оп-оболочки tf.py_funcЗатем, после обучения модели, я решил изменить функцию python на реализацию тензорного потока.

tf.image.non_max_suppression не имеет обучаемых параметров, поэтому я не понимаю, почему, когда я сейчас загружаю сохраненную модель и запускаю график, тензор не инициализируется. Я тоже пытался сделать sess.run(tf.global_variables_initializer()) перед загрузкой модели с tf.train.Saver(..).restore(..) но нет изменений, все еще видя Uninitialized tensor в tfdbg для NMS и последующих операций.

Есть идеи об этом поведении и как его можно решить?

Вот как я использую tf.image.non_max_suppression:

keep = tf.image.non_max_suppression(proposals_yxyx, 
                             scores, 
                             tf.constant(cfg[cfg_key].RPN_POST_NMS_TOP_N), 
                             cfg[cfg_key].RPN_NMS_THRESH, 
                             name="Non-maximal-suppression")

0 ответов

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