def test_2d_dropout(self): """ Test 2d dropout layer. """ do = layers.Dropout(0.2, 2) o = do(torch.randn(1, 2, 32, 64)) self.assertEqual(o.shape, (1, 2, 32, 64))
def test_1d_dropout(self): """ Test 1d dropout layer. """ do = layers.Dropout(0.2, 1) o = do(torch.randn(1, 2, 32, 64)) self.assertEqual(o[0].shape, (1, 2, 32, 64))
def build_dropout(self, input: Tuple[int, int, int, int], block: str) -> Union[Tuple[None, None, None], Tuple[Tuple[int, int, int, int], str, Callable]]: pattern = re.compile(r'(?P<type>Do)(?P<name>{\w+})?(?P<p>(\d+(\.\d*)?|\.\d+))?(,(?P<dim>\d+))?') m = pattern.match(block) if not m: return None, None, None prob = float(m.group('p')) if m.group('p') else 0.5 dim = int(m.group('dim')) if m.group('dim') else 1 fn = layers.Dropout(prob, dim) logger.debug('{}\t\tdropout\tprobability {} dims {}'.format(self.idx+1, prob, dim)) return fn.get_shape(input), self.get_layer_name(m.group('type'), m.group('name')), fn