Я пытаюсь запустить API обнаружения объектов TF таким же образом, как я это делал несколько раз в прошлом на других машинах (та же настройка Dockerfile).На этот раз при попытке вызвать model_main.py
все, что возвращается, это Segmentation fault (core dumped)
.
Я прошел через model_main.py
и обнаружил, что эта ошибка возникает очень рано, в строке from object_detection import model_lib
.Как я могу понять, почему это происходит?У меня есть этот файл дампа памяти, но я не уверен, как я могу использовать это, чтобы узнать больше о том, что вызвало этот segfault.Я использую следующие графические процессоры:
Ubuntu 16.04
NVIDIA K80
CUDA 9.0
cuDNN 7.3.1
Python 3.6.7
Tensorflow 1.10
IЯ также могу импортировать 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 исчезнет.Не знаю почему, поэтому, если кто-нибудь знает, мне было бы интересно услышать.