https://medium.com/@kuza55/transparent-multi-gpu-training-on-tensorflow-with-keras-8b0016fd9012 https://github.com/kuza55/keras-extras/blob/master/utils/multi_gpu.py import numpy as np import keras from keras.models import Sequential from keras.layers import Dense model = Sequential() model.add(Dense(4000, input_dim=8000, activation='tanh')) model.add(Dense(2000, input_dim=8000, activation='relu')) model.add(Dense(500, activation='relu')) model.add(Dense(300, activation='relu')) model.add(Dense(1, activation='sigmoid')) print (model.summary()) model = make_parallel(model, 4) optimizer = keras.optimizers.Adam(lr=0.0001) model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=['accuracy']) x = np.random.rand(131072, 8000) y = np.random.randint(0, 2, (131072, 1)) model.fit(x, y, batch_size=2048*4 )