huanghuidmml / tfbert

基于tensorflow1.x的预训练模型调用,支持单机多卡、梯度累积,XLA加速,混合精度。可灵活训练、验证、预测。
58 stars 11 forks source link

多卡会报错 #5

Open vcbeaut opened 2 years ago

vcbeaut commented 2 years ago

使用楼主代码运行,多卡会报错,tf.split 分发数据出错

huanghuidmml commented 2 years ago

使用楼主代码运行,多卡会报错,tf.split 分发数据出错

请问下是哪个代码呢?我这边排查下

vcbeaut commented 2 years ago

使用楼主代码运行,多卡会报错,tf.split 分发数据出错

请问下是哪个代码呢?我这边排查下

tf.split代码只有几处,就在数据分发那里

huanghuidmml commented 2 years ago

使用楼主代码运行,多卡会报错,tf.split 分发数据出错

请问下是哪个代码呢?我这边排查下

tf.split代码只有几处,就在数据分发那里

你好,我测试了一下,双卡三卡卡都是可以跑的,请问你报的什么错,能截图吗?

pgr2015 commented 2 years ago

你好,这是截图,我是双卡训练,split分发数据有问题,应该是最后一个step分发的数据不平均导致的 微信图片_20210909162149

pgr2015 commented 2 years ago

你好,我已经解决了这个问题,就是最后一个step不满batch_size的话可能会出问题,比如batch_size恰好不是偶数的话,split到两个device会出错,解决的方法也很简单,把这里改成True就行了。不过我个人认为数据分发的逻辑还是有些问题的,test阶段不应该把数据分发到多卡上,而是一张卡做test,其他卡不做任何操作。 @huanghuidmml 大佬你觉得呢?