Hi, before using dropout, my model works pretty well on both training and test set. However, after using dropout even with p=0.1, the results on test set became much worse (training set seems not to be affected). I suppose that it’s more likely due to the implementation rather than overfitting etc. I made sure that I used model.eval() during validation/testing. I used dropout in my model like below:
   self.conv = nn.Conv3d(in_channels, out_channels, kernel_size=kernel_size, dilation=dilation)

   self.bn = nn.BatchNorm3d(out_channels)
   self.do_act = do_act
   self.if_drop = if_drop
   if self.do_act:
     self.act = nn.PReLU()

   if self.if_drop:
      self.dropout = nn.Dropout3d(drop_rate)

def forward(self, input):
   out = self.bn(self.conv(input))

   if self.do_act:
      out = self.act(out)
   if self.if_drop:
      out = self.dropout(out)

   return out

Thanks!