如何解决具有定制培训步骤的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 举报,一经查实,本站将立刻删除。