(dim, input, size, scale_factor)
| 33 | "Input is {}D, scale_factor size is {}".format(dim, len(scale_factor)) |
| 34 | ) |
| 35 | def _output_size(dim, input, size, scale_factor): |
| 36 | # type: (int, Tensor, Optional[List[int]], Optional[float]) -> List[int] |
| 37 | assert dim == 2 |
| 38 | _check_size_scale_factor(dim, size, scale_factor) |
| 39 | if size is not None: |
| 40 | return size |
| 41 | # if dim is not 2 or scale_factor is iterable use _ntuple instead of concat |
| 42 | assert scale_factor is not None and isinstance(scale_factor, (int, float)) |
| 43 | scale_factors = [scale_factor, scale_factor] |
| 44 | # math.floor might return float in py2.7 |
| 45 | return [ |
| 46 | int(math.floor(input.size(i + 2) * scale_factors[i])) for i in range(dim) |
| 47 | ] |
| 48 | elif float(major_version) < 1 and float(minor_version) < 7: |
| 49 | from torchvision.ops import _new_empty_tensor |
| 50 | from torchvision.ops.misc import _output_size |
no test coverage detected