Вы можете использовать именно тот код, который вы разместили.
Выберите устройство, определите слои, выберите другое устройство, определите другие слои:
Теперь наилучшая производительность, вероятно, будет использовать противоположное:
with tf.device('/gpu:0'):
CNNKerasLayers....
with tf.device('/cpu:0'):
RNNKerasLayers....
Теперь,Я не уверен, как keras справится с этим (эффективно параллельно или нет), но, скорее всего, это просто позволит тензорному потоку решить эту проблему.