Я пытаюсь использовать отладчик тензорной доски для отладки моего приложения.Я вижу, как график медленно строится, но когда начинается обучение, я вижу только узлы очереди в ЦП, а остальная часть графика и весь раздел GPU больше не видны.Проще всего это объяснить несколькими картинками.
Перед тем, как запустить первый файл session.run (var.assign (data)) для инициализации данных:
Затем я выполняю инициализацию переменных:
и в конце, когда начинаю тренировку с sess.run (training_op):
Почему я вижу только очередь FIFO в конце, а не весь график?
Похоже, что графический процессор исключен из процесса отладки, но я не уверен, почему,потому что наверняка это привыкает, потому что я написал пользовательские операции, где при печати я получаю вывод, но это громоздкий способ отладки.
Я не могу опубликовать MVC, потому что кодовая база огромнаи замысловатый, но принцип таков:
- очереди FIFO
q = tf.FIFOQueue(queue_size, [tf.float32, tf.float32, tf.int32, tf.float32, tf.float32, tf.float32, tf.float32, tf.float32, tf.float32, tf.float32, tf.float32])
- построение графика
def make_var(self, name, shape, initializer=None, regularizer=None, trainable=True):
return tf.get_variable(name, shape, initializer=initializer, regularizer=regularizer, trainable=trainable)
- инициализация переменных
session.run(var.assign(data))
- 2-й поток начал подпитывать очереди
t = threading.Thread(target=load_and_enqueue, args=(sess, self.net, data_layer, coord_train, iters_train))
- тренировочный цикл
- Точки 5 и 6 показаны здесь:
форматирование фиктивного текста
for epoch in range(epochs):
coord_train.run = True
coord_val.run = True
t = threading.Thread(target=load_and_enqueue, args=(sess, self.net, data_layer, coord_train, iters_train))
t.start()
t_val = threading.Thread(target=load_and_enqueue_val, args=(sess, self.net, data_layer, coord_val, iters_val))
print("Epoch: %d / %d" % (epoch, epochs))
for iter_train in range(iters_train):
timer.tic()
loss_summary, loss_cls_summary, loss_vertex_summary, loss_pose_summary, loss_regu_summary, loss_value, loss_cls_value, loss_vertex_value, loss_pose_value, loss_regu_value, lr, _ \
= sess.run([loss_op, loss_cls_op, loss_vertex_op, loss_pose_op, loss_regu_op, loss, loss_cls, loss_vertex, loss_pose, loss_regu, learning_rate, train_op])
Дайте мне знать, если я смогу предоставить больше информации, и какой тип будет полезен для устранения этой проблемы.