Keras并行训练

Keras在TensorFlow后端默认支持GPU训练,只需定义模型并编译即可自动利用GPU。对于多GPU训练,可以使用`multi_gpu_model`进行数据并行,将每个batch均匀分配到各GPU上进行训练。另外,结构并行则涉及将模型的不同分支在不同设备上计算,再整合结果,这需要借助TensorFlow的低级API来实现。请注意,`compile`必须在模型定义后立即调用。
摘要由CSDN通过智能技术生成

Keras如果以Tensorflow作为后端,是自动支持GPU的。也就是说你只管定义模型,compile,fit。如果能检测到可用的GPU,就会自动跑在GPU上。

数据并行

如果要用多GPU训练,只需要用multi_gpu_model函数再包裹 一下。具体如下

## 代码来自keras官方文档  网址 https://keras.io/getting-started/faq/#how-can-i-run-keras-on-gpu
from keras.utils import multi_gpu_model

# Replicates `model` on 8 GPUs.
# This assumes that your machine has 8 available GPUs.
# 返回一个并行模型
parallel_model = multi_gpu_model(model, gpus=8)
parallel_model.compile(loss='categorical_crossentropy',
                       optimizer='rmsprop')

# This `fit` call will be distributed on 8 GPUs.
# Since the batch size is 256, each GPU will process 32 samples.
parallel_model.fit(x, y, epochs=20, batch_size=256)

multi_gpu_model是数据并行方式,即将模型复制到各个GPU上,每个batch被均匀划分到各个GPU上训练,最后合并更新参数。
值得注意的是compile必须是模型定义的最后一步。

结构并行

结构并行将不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值