Spliting keras model into multiple GPU's Dear fellow Data Scientists.
I'm having a problem with splitting model into multiple GPU's. I have read something about "towering" in native tensorflow but my whole architecture is already written in keras (tensorflow backend of course). Keras as far as I know only supports data paralellism which is useless while operating on images bigger than 1760x1760 in my case(Yolo architecture). I'm asking for advice, how could I achieve this without using native tensorflow I must run this model on 4500x4500 images and I can use up to 4 Tesla k40 (11GB) GPU's.

EDIT:
I'm already using batch = 1
One graph - multiple GPUs

In order to specify specific GPU for layers, this post can be helpful. Just specify for layer the GPU device.

Multiple copies of graph - multi_gpu_model()

There is a multi_gpu_model() function in Keras which will make your training be distributed on multiple GPUs on one machine.

But, as it is stated in the documentation, this approach copies the graph on multiple GPUs and splits the batches to those multiple GPUs and later fuses them.

When using this multi_gpu_model() be aware that you might encounter a problem with saving such model, but it can be easily solved by saving the original model as stated is this answer.