У меня возникли проблемы с тем, что tenorflow использует графический процессор Nvidia GeForce GTX 1080 в своей системе. Я уменьшил свой код до очень простой версии, показанной ниже; Я выполняю только операцию session.run(), которая должна использовать графический процессор, данные извлекаются только один раз и повторно используются внутри цикла, поэтому этот код должен использовать только графический процессор.Низковольтный GPU Использование при работе тензорного потока
input_training_data=self.val_data[batch_size, :] input_training_label=self.val_label[batch_size, :] feed_dict = self.get_feed_dict(input_training_data, input_training_label) for i in range(1000): acc = sess.run(cost, feed_dict)
Я заметил, что batch_size = 16, я получаю в основном устойчиво использование GPU на уровне около 8%, как я увеличить batch_size до 32 максимально увеличивается использование GPU на 9-12%, но пребывание утилизации в основном на 0% и время от времени он прыгает до 15% -25% и сразу падает до 0%. Эти шаблоны продолжаются для более крупных серийных файлов, в основном любой размер партии, превышающий 16, увеличивает максимальное использование, но использование остается в основном на 0 и только время от времени увеличивается. Что мне здесь не хватает?
Вы можете попробовать применить инструменты профилирования, чтобы иметь точное время каждой операции, см. пример [здесь] (http://stackoverflow.com/documentation/tensorflow/3850/ измерение-на-Execution-время-Индивидуально-операций). Это должно помочь вам понять, почему использование графического процессора является низким, и вы можете обновить свой вопрос с дополнительной информацией. –
У вас есть некоторые узкие места, где на CPU и на графическом процессоре установлен некоторый медленный режим, и ждать, пока он будет выполнен, или ваш расчет слишком мал, а передача данных не может идти в ногу с графическим процессором. Существуют некоторые трюки для оптимизации передачи данных, например [здесь] (https://github.com/tensorflow/tensorflow/issues/5722#issuecomment-266297116) –