Ошибка сегментации API обнаружения объектов TF

Я пытаюсь запустить API обнаружения объектов TF так же, как и раньше, на других машинах (та же настройка Dockerfile). На этот раз при попытке вызвать model_main.py возвращается только Segmentation fault (core dumped).

Я прошел через model_main.py и обнаружил, что этот segfault возникает очень рано, в строке from object_detection import model_lib. Как я могу понять, почему это происходит? У меня есть этот файл дампа ядра, но я не уверен, как его использовать, чтобы выяснить, что вызвало этот segfault. GPU / версии, которые я использую:
Ubuntu 16.04
NVIDIA K80
CUDA 9.0
cuDNN 7.3.1
Python 3.6.7
Тензорпоток 1.10

Я также могу без проблем импортировать TensorFlow и успешно запустить этот базовый тест:

import tensorflow as tf
with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))

Любые советы высоко ценится!

Редактировать: Сорта вроде решено. В model_lib.py ошибка вызывается строкой from object_detection import eval_util. Если я изменю этот файл так, чтобы эта строка была последней импортированной, а не одной из первых, этот segfault исчезнет. Понятия не имею, почему, так что, если кто-нибудь знает, мне было бы действительно интересно послушать.

Пожалуйста, опубликуйте всю трассировку ошибок. Без него невозможно отладить

Abhijit Balaji 09.12.2018 18:01

Мне жаль, что у меня не было более длинной ошибки, но мой терминал выводит только эту однострочную ошибку. Это первая проблема, с которой я сталкиваюсь, пытаясь отладить это.

Austin 09.12.2018 18:01

У меня такая же проблема. Удалось ли вам выяснить причину?

Sricharan Kambhammettu 05.03.2019 07:26

@SricharanKambhammettu Это произошло из-за запуска python 3, когда код был написан на python 2. Вы можете заставить его работать, но вам нужно обернуть объекты range () с помощью list () в нескольких местах кода API. Также, если я правильно помню, в одном из файлов был неправильный порядок импорта.

Austin 05.03.2019 07:29

Спасибо. Это сработало после того, как я внес указанное изменение.

Sricharan Kambhammettu 05.03.2019 14:15
Почему в 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 может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
5
614
0

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