微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有定制培训步骤的Tensorflow分布式培训

如何解决具有定制培训步骤的Tensorflow分布式培训

我正面临缓慢的训练,我试图通过使用Tensorflow的Strategy API来利用所有4个GPU来扩大训练过程。

我正在使用MirrorStrategy并使用experimental_distribute_dataset对数据集进行分区。

我的训练数据的本质是稀疏矩阵和稠密矩阵的混合。 I'm using a generator to construct my dataset从数据中选择随机索引)。但是,在我当前的TF(2.1)generators don't support sparse matrices版本中。 sparse_matrix没有静态大小,并且是Ragged张量。

这有点丑陋并且可以解决,但是我将sparse_matrix_list直接传递给了train函数,并通过拥有一个全局队列来对其进行索引,该全局队列通过将随机索引推入内部来填充generator

在这方法可以正常工作,但是速度太慢了,我想尝试使用所有GPU进行训练。由于我不得不将sparse_matrix_list手动划分为num_workers个拆分,因此问题变得更加严重。

但是,当前的主要问题是训练过程似乎不是并行,并且副本(GPU)似乎是按顺序运行的。。我通过nvidia-smi进行了验证,并登录train_process函数

我以前没有进行分布式培训的经验,也不知道为什么会这样,如果有人对如何更好地处理spare和{{1 }}数据。我目前在获取数据方面面临巨大的瓶颈,这些数据未充分利用GPU(在10%至30%之间波动)

dense

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。