It looks like this works. Because of the unsqueeze/squeeze steps, this would normally require a bunch of entries in the forward() function, from what I can tell. One workaround is below: I define a module and that can be used in the init() function of other modules. There is probably a more elegant solution, and if so I’d like to learn it.
class ChannelDropout1d(nn.Module):
    def __init__(self, *args):
        super().__init__()
        self.d = nn.Dropout2d()
    
    def forward(self, x):
        out = x
        out = out.unsqueeze(-1)
        out = self.d(out)
        out = out.squeeze()
        
        return out