From what I saw it seems most common to place dropout after each relu.
This code goes recursively through each block.
    model = resnet18()

    def append_dropout(model, rate=0.2):
        for name, module in model.named_children():
            if len(list(module.children())) > 0:
                append_dropout(module)
            if isinstance(module, nn.ReLU):
                new = nn.Sequential(module, nn.Dropout2d(p=rate, inplace=True))
                setattr(model, name, new)


    append_dropout(model)
    print(model)