CRNN_Chinese_Characters_Rec icon indicating copy to clipboard operation
CRNN_Chinese_Characters_Rec copied to clipboard

解决了单机多卡并行训练的问题

Open chichuhu opened this issue 3 years ago • 2 comments

代码里面在把数据传入LSTM网络的时候把batch_size变换到了第1维(0开始),DataParallel默认按照第0维进行拆分和拼接。

所以第一种方法可以临时修改DataParallel中gather函数传入的参数dim改成1,即可解决,但是跑别的代码要记得改回来。

另一种方法可以将模型的最后输出batch_size改到第0维,这样并行就会按照batch_size拼接,然后再变换到第1维。(从代码中看的话传入CTC损失函数的batch_size是第1维)

chichuhu avatar Nov 20 '20 10:11 chichuhu

代码里面在把数据传入LSTM网络的时候把batch_size变换到了第1维(0开始),DataParallel默认按照第0维进行拆分和拼接。

所以第一种方法可以临时修改DataParallel中gather函数传入的参数dim改成1,即可解决,但是跑别的代码要记得改回来。

另一种方法可以将模型的最后输出batch_size改到第0维,这样并行就会按照batch_size拼接,然后再变换到第1维。(从代码中看的话传入CTC损失函数的batch_size是第1维)

请问有没有试过预测的时候改成GPU训练?

Donaghys avatar Nov 22 '20 13:11 Donaghys

@chichuhu 具体代码怎么改?请教

sunjunlishi avatar Feb 22 '24 06:02 sunjunlishi