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)