Tensorflow keras中GPU的多处理
我需要并行计算多个深度模型,并平均它们的结果。使用Tensorflow keras中GPU的多处理,tensorflow,keras,Tensorflow,Keras,我需要并行计算多个深度模型,并平均它们的结果。使用GPU 0完成计算后,我的作业将永远运行 def model_train(self, params): from nn_arch import nn_models X, y, gpu_no = params print("GPU NO ", gpu_no) with tf.device('/gpu:' + str(gpu_no)): model1 = nn_models.lenet5()
GPU 0
完成计算后,我的作业将永远运行
def model_train(self, params):
from nn_arch import nn_models
X, y, gpu_no = params
print("GPU NO ", gpu_no)
with tf.device('/gpu:' + str(gpu_no)):
model1 = nn_models.lenet5()
early_callback = CustomCallback()
model1.fit(X, y, batch_size=256, validation_split=0.2, callbacks=[early_callback],
verbose=1,
epochs=1)
return model1
下面是我的主要方法<代码>在这种情况下,我有2个GPU
def main(self, X_train, y_train, X_test, y_test):
random_buckets = self.get_random()
X = [X_train[random_buckets[k]] for k in sorted(random_buckets)]
y = [y_train[random_buckets[j]] for j in sorted(random_buckets)]
params = zip(X, y, [0, 1])
models = pool1.map(self.model_train, params)
如何与Keras并行培训多个模型。(数据并行方法)请参考多GPU TensorFlow教程
在keras中编译模型之前。添加这一行 模型=使_平行(模型,2) 其中2是可用的GPU数量 make_parallel函数在此文件中可用。只需在代码中导入文件,代码将在多个GPU上执行 使_并行是一个简单的函数,它:
- 它在您告诉它的N个GPU上实例化您的模型副本
- 它将您的批次分成N个大小均匀的小批次
- 它将每个较小的批次传递到相应的模型中
- 它连接模型的输出