Tensorflow: использование GPU почти всегда на уровне 0%

Я использую tenorflow с графическими процессорами Titan-X и заметил, что при запуске примера CIFAR10Volatile GPU-utilization довольно постоянный около 30%, тогда как, когда я тренирую свою собственную модель,Volatile GPU-utilization далеко не устойчивый, он почти всегда равен 0% и достигает 80/90%, а затем возвращается к 0% снова и снова.

Я думал, что такое поведение было связано с тем, как я подал данные в сеть (я выбирал данные после каждого шага, который занимал некоторое время). Но после создания очереди для подачи данных и предотвращения этой задержки между этапами проблема не исчезла (см. Ниже систему очередей).

Любая идея?

batch = 128 # size of the batch
x = tf.placeholder("float32", [None, n_steps, n_input])
y = tf.placeholder("float32", [None, n_classes])

# with a capacity of 100 batches, the bottleneck should not be the data feeding
queue = tf.RandomShuffleQueue(capacity=100*batch,
                  min_after_dequeue=80*batch,
                  dtypes=[tf.float32, tf.float32],
                  shapes=[[n_steps, n_input], [n_classes]])
enqueue_op = queue.enqueue_many([x, y])
X_batch, Y_batch = queue.dequeue_many(batch)

sess = tf.Session()

def load_and_enqueue(data):
    while True:
        X, Y = data.get_next_batch(batch)
        sess.run(enqueue_op, feed_dict={x: X, y: Y})

train_thread = threading.Thread(target=load_and_enqueue, args=(data))
train_thread.daemon = True
train_thread.start()

for _ in xrange(max_iter):
    sess.run(train_op)

Ответы на вопрос(1)

Ваш ответ на вопрос