Я использую Jupyter Notebook для запуска Keras с бэкэндом Tensorflow GPU. Я провел некоторое тестирование с различными фиктивными моделями, одновременно отслеживая использование моего графического процессора, используя MSI Afterburner, GPU-Z, nvidia-smi и диспетчер задач. Мой графический процессор - GeForce GTX 960M, у которого нет проблем с запуском игр. Температуры также низкие при работе Keras.
Что я заметил, так это то, что Keras работает нормально (например, загружает или обучает модель) в начале, но всякий раз, когда Keras ничего не запускает, графический процессор естественно хочет работать на холостом ходу от 1097 МГц до 0 МГц и как только делает ли сбой GPU. Я вижу, что "NVIDMI потерян" на NVSMI. Затем мне нужно отключить и снова включить мой графический процессор в диспетчере устройств, чтобы он заработал.
Кто-нибудь знает, почему это может происходить?
Редактировать: я могу временно предотвратить это для очень маленьких программ, используя функцию "allow_growth" следующим образом:
import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
set_session(sess)
Однако это работает только в том случае, если операция действительно мала, так как она использует только около 0,1 ГБ памяти графического процессора, например при загрузке модели или запуске действительно маленькой модели. Однако, если программа использует память даже 0,3 ГБ памяти, мой GPU падает, так как память не достигает 0 ГБ до , тактовая частота падает до 0 МГц (более низкое состояние питания).