CRNN_Chinese_Characters_Rec
CRNN_Chinese_Characters_Rec copied to clipboard
解决了单机多卡并行训练的问题
代码里面在把数据传入LSTM网络的时候把batch_size变换到了第1维(0开始),DataParallel默认按照第0维进行拆分和拼接。
所以第一种方法可以临时修改DataParallel中gather函数传入的参数dim改成1,即可解决,但是跑别的代码要记得改回来。
另一种方法可以将模型的最后输出batch_size改到第0维,这样并行就会按照batch_size拼接,然后再变换到第1维。(从代码中看的话传入CTC损失函数的batch_size是第1维)
代码里面在把数据传入LSTM网络的时候把batch_size变换到了第1维(0开始),DataParallel默认按照第0维进行拆分和拼接。
所以第一种方法可以临时修改DataParallel中gather函数传入的参数dim改成1,即可解决,但是跑别的代码要记得改回来。
另一种方法可以将模型的最后输出batch_size改到第0维,这样并行就会按照batch_size拼接,然后再变换到第1维。(从代码中看的话传入CTC损失函数的batch_size是第1维)
请问有没有试过预测的时候改成GPU训练?
@chichuhu 具体代码怎么改?请教