def forward(self, input: Tensor) -> Generator[pop, Tensor, Tensor]: # type: ignore skipped_input = yield pop('skip') skip_shape = skipped_input.shape[2:] input_shape = input.shape[2:] if input_shape != skip_shape: pad = [d2 - d1 for d1, d2 in zip(input_shape, skip_shape)] pad = sum([[0, p] for p in pad[::-1]], []) input = F.pad(input, pad=pad) output = torch.cat((input, skipped_input), dim=1) return output
def forward(self, input: Tensor) -> Tensor: # type: ignore identity = yield pop('identity') if self.downsample is not None: identity = self.downsample(identity) return input + identity
def forward(self, input): foo = yield pop('foo') return foo
def forward(self, input): yield pop('foo')
def forward(self, input): skip = yield pop('skip') return input + skip
def forward(self, input): bar = yield pop('bar') return input + bar
def forward(self, input): none = yield pop('none') assert none is None return input
def forward(self, input): skip_1to3 = yield pop('1to3') output = self.conv(input) + skip_1to3 return output
def forward(self, input): identity = yield pop('identity') out = input if self.stride == 1: out = input + self.shortcut(identity) return out
def forward(self, input: torch.Tensor): skip = yield pop("skip") if skip is not None: input = torch.cat([input, skip], dim=1) return input
def forward(self, input): identity = yield pop('identity') return input + self.shortcut(identity)