Ваши пользовательские слои будут по-прежнему использовать графический процессор, и вы можете подтвердить это, как описано в этом ответе .
Вы правы, хотя пользовательские слои не будут использовать cuDNN. Почему это имеет значение? Чтобы процитировать после NVidia:
cuDNN предоставляет хорошо настроенные реализации для стандартных процедур, таких как прямая и обратная свертка, уровни пула, нормализации и активации
Другими словами, используя Эти оптимизированные примитивы повысят эффективность обучения. Количество примеров с подробным объяснением приведено в документе cuDNN: Эффективные примитивы для глубокого обучения . Возьмем для примера пространственные свертки . Неоптимизированная реализация будет использовать «наивный» подход, в то время как cuDNN использует всевозможные приемы, чтобы сократить количество операций и распределить их соответствующим образом. Графический процессор все еще быстрый по сравнению с классическим процессором, cuDNN просто делает это быстрее. Более свежие, независимые тесты можно найти, например, в этой статье .
Тем не менее, если Tensorflow работает в режиме GPU, на GPU будет выполнен полный вычислительный график (насколько мне известно, даже нет простого способа вынуть часть графика, то есть промежуточный слой, и поставить на процессор).