1、如何在tensorflow中实现多GPU编程,目前看到介绍最详细的是
tensorflow 多GPU编程
(膜拜大佬)
2、如何在keras中实现多GPU编程,详见官方文档Multi-GPU and distributed training
3、实验:
修改tensorflow官方教程中的 基于注意力的神经机器翻译”
在合适的地方添加x下列句子。
strategy = tf.distribute.MirroredStrategy()
with strategy.scope():
strategy.scope范围内 新建模型和优化器
改动前:
encoder = Encoder(un_word_num, settings.embedding_dim, settings.units, settings.BATCH_SIZE)
decoder = Decoder(un_word_num, settings.embedding_dim, settings.units, settings.BATCH_SIZE)
optimizer = tf.train.AdamOptimizer()
改动后:
strategy = tf.distribute.MirroredStrategy()
print('Number of devices: {}'.format(strategy.num_replicas_in_sync))
with strategy.scope():
encoder = Encoder(un_word_num, settings.embedding_dim, settings.units, settings.BATCH_SIZE)
decoder = Decoder(un_word_num, settings.embedding_dim, settings.units, settings.BATCH_SIZE)
optimizer = tf.train.AdamOptimizer()
tensorflow版本:1.14
问题:
我用自己的一个文本数据测试的时候会出现,
相同迭代次数,多GPU模型loss下降慢,但效果更好的现象。
不确定是模型还是数据集的问题,推测是因为bach size变相增大了,模型下降时情况更复杂了。