Недавно я столкнулся с проблемой, когда кажется, что Keras не может полностью использовать графический процессор (Titan V). Я использую GAN (pix2pix), и производительность почти такая же, как если бы у меня не было графического процессора.
Вот краткий обзор проблемы:
Набор данных содержит около 3000 изображений, которые имеют был преобразован в файл .npz.
Я загружаю данные следующим образом:
def load_real_samples(filename):
data = load(filename)
X1, X2 = data['arr_0'], data['arr_1']
X1 = (X1 - 127.5) / 127.5
X2 = (X2 - 127.5) / 127.5
return [X1, X2]
Когда я начинаю тренировку, вот как выглядит производительность.

Таким образом, первый инстинкт был в том, что проблема в том, что выделенная память почти полностью исчерпана.
Итак, настройте тензор потока следующим образом, надеясь, что это решит проблему:
config = tf.compat.v1.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.compat.v1.Session(config=config)
результат заключается в том, что выделенная память явно уменьшается, но графический процессор все еще работает на уровне 2%.

Я также попытался загрузить только 200 образцов вместо загрузки полного набора данных, но безуспешно.
Так что, если бы кто-то мог рассказать мне о том, почему это происходит и как преодолеть это, это было бы высоко оценено.