Dict() as output of nn.Module with nn.DataParallel

Hi all,

There are some issue related with return value of nn.Module.forward(): for some networks we want to return more than one value from nn.Module and dict() is conveniently structure for do it. For exmaple:

class Qqq(nn.Module):
    def __init__(self):
        super().__init__()

    def forward(self, x):
        ...
        do something
        ...
        out = {}
        out["out1"] = out1
        out["out2"] = out2
        return out

And it works well if we use Qqq directly, but don’t work if we Use Qqq via nn.DataParallel() (I think that gather() function not support dict() ). Is it bug or feature? Thanks in advance!

This is now supported on master :slight_smile:, and will be included in the next release.