Skip to content

Commit 380ccfd

Browse files
Revert "Added round_with_scale_factor arg to ATen (pytorch#97868)"
This reverts commit aa99c5b. Reverted pytorch#97868 on behalf of https://github.com/osalpekar due to Caused breakages in the glow compiler - see [D45374622](https://www.internalfb.com/diff/D45374622) for more details
1 parent 5022143 commit 380ccfd

22 files changed

+86
-129
lines changed

aten/src/ATen/native/UpSample.cpp

+2-6
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ namespace upsample {
1212
TORCH_API c10::SmallVector<int64_t, 3> compute_output_size(
1313
c10::IntArrayRef input_size, // Full input tensor size.
1414
at::OptionalIntArrayRef output_size,
15-
c10::optional<c10::ArrayRef<double>> scale_factors,
16-
bool round_with_scale_factor) {
15+
c10::optional<c10::ArrayRef<double>> scale_factors) {
1716
const auto spatial_dimensions = static_cast<int64_t>(input_size.size()) - 2;
1817
if (output_size) {
1918
TORCH_CHECK(!scale_factors, "Must specify exactly one of output_size and scale_factors");
@@ -25,10 +24,7 @@ TORCH_API c10::SmallVector<int64_t, 3> compute_output_size(
2524
TORCH_CHECK(static_cast<int64_t>(scale_factors->size()) == spatial_dimensions);
2625
c10::SmallVector<int64_t, 3> ret;
2726
for (const auto i : c10::irange(spatial_dimensions)) {
28-
const double d = round_with_scale_factor ? 0.5 : 0.0;
29-
// if round_with_scale_factor=true we perform round (i.e. int(0.5 + x)) to match opencv, scipy,
30-
// scikit-image output size
31-
const double odim = d + static_cast<double>(input_size[i+2]) * scale_factors.value()[i];
27+
const double odim = static_cast<double>(input_size[i+2]) * scale_factors.value()[i];
3228
ret.push_back(c10::checked_convert<int64_t>(odim, "int64_t"));
3329
}
3430
return ret;

aten/src/ATen/native/UpSample.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ namespace upsample {
5252
TORCH_API c10::SmallVector<int64_t, 3> compute_output_size(
5353
c10::IntArrayRef input_size, // Full input tensor size.
5454
at::OptionalIntArrayRef output_size,
55-
c10::optional<c10::ArrayRef<double>> scale_factors,
56-
bool round_with_scale_factor=false);
55+
c10::optional<c10::ArrayRef<double>> scale_factors);
5756

5857
inline c10::optional<double> get_scale_value(c10::optional<c10::ArrayRef<double>> scales, int idx) {
5958
if (!scales) {

aten/src/ATen/native/UpSampleBicubic2d.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,8 @@ Tensor upsample_bicubic2d(
280280
const Tensor& input,
281281
at::OptionalIntArrayRef output_size,
282282
bool align_corners,
283-
c10::optional<ArrayRef<double>> scale_factors,
284-
bool round_with_scale_factor) {
285-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
283+
c10::optional<ArrayRef<double>> scale_factors) {
284+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
286285
auto scale_h = get_scale_value(scale_factors, 0);
287286
auto scale_w = get_scale_value(scale_factors, 1);
288287
return at::upsample_bicubic2d(input, osize, align_corners, scale_h, scale_w);
@@ -292,9 +291,8 @@ Tensor _upsample_bicubic2d_aa(
292291
const Tensor& input,
293292
at::OptionalIntArrayRef output_size,
294293
bool align_corners,
295-
c10::optional<ArrayRef<double>> scale_factors,
296-
bool round_with_scale_factor) {
297-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
294+
c10::optional<ArrayRef<double>> scale_factors) {
295+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
298296
auto scale_h = get_scale_value(scale_factors, 0);
299297
auto scale_w = get_scale_value(scale_factors, 1);
300298
return at::_upsample_bicubic2d_aa(input, osize, align_corners, scale_h, scale_w);

aten/src/ATen/native/UpSampleBilinear2d.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,8 @@ Tensor upsample_bilinear2d(
162162
const Tensor& input,
163163
at::OptionalIntArrayRef output_size,
164164
bool align_corners,
165-
c10::optional<ArrayRef<double>> scale_factors,
166-
bool round_with_scale_factor) {
167-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
165+
c10::optional<ArrayRef<double>> scale_factors) {
166+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
168167
auto scale_h = get_scale_value(scale_factors, 0);
169168
auto scale_w = get_scale_value(scale_factors, 1);
170169
return at::upsample_bilinear2d(input, osize, align_corners, scale_h, scale_w);
@@ -174,9 +173,8 @@ Tensor _upsample_bilinear2d_aa(
174173
const Tensor& input,
175174
at::OptionalIntArrayRef output_size,
176175
bool align_corners,
177-
c10::optional<ArrayRef<double>> scale_factors,
178-
bool round_with_scale_factor) {
179-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
176+
c10::optional<ArrayRef<double>> scale_factors) {
177+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
180178
auto scale_h = get_scale_value(scale_factors, 0);
181179
auto scale_w = get_scale_value(scale_factors, 1);
182180
return at::_upsample_bilinear2d_aa(input, osize, align_corners, scale_h, scale_w);

aten/src/ATen/native/UpSampleLinear1d.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,8 @@ Tensor upsample_linear1d(
9393
const Tensor& input,
9494
at::OptionalIntArrayRef output_size,
9595
bool align_corners,
96-
c10::optional<ArrayRef<double>> scale_factors,
97-
bool round_with_scale_factor) {
98-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
96+
c10::optional<ArrayRef<double>> scale_factors) {
97+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
9998
auto scale_w = get_scale_value(scale_factors, 0);
10099
return at::upsample_linear1d(input, osize, align_corners, scale_w);
101100
}

aten/src/ATen/native/UpSampleNearest1d.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -126,19 +126,17 @@ using at::native::upsample::get_scale_value;
126126
Tensor upsample_nearest1d(
127127
const Tensor& input,
128128
at::OptionalIntArrayRef output_size,
129-
c10::optional<ArrayRef<double>> scale_factors,
130-
bool round_with_scale_factor) {
131-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
129+
c10::optional<ArrayRef<double>> scale_factors) {
130+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
132131
auto scale_w = get_scale_value(scale_factors, 0);
133132
return at::upsample_nearest1d(input, osize, scale_w);
134133
}
135134

136135
Tensor _upsample_nearest_exact1d(
137136
const Tensor& input,
138137
at::OptionalIntArrayRef output_size,
139-
c10::optional<ArrayRef<double>> scale_factors,
140-
bool round_with_scale_factor) {
141-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
138+
c10::optional<ArrayRef<double>> scale_factors) {
139+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
142140
auto scale_w = get_scale_value(scale_factors, 0);
143141
return at::_upsample_nearest_exact1d(input, osize, scale_w);
144142
}

aten/src/ATen/native/UpSampleNearest2d.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,8 @@ using at::native::upsample::get_scale_value;
150150
Tensor upsample_nearest2d(
151151
const Tensor& input,
152152
at::OptionalIntArrayRef output_size,
153-
c10::optional<ArrayRef<double>> scale_factors,
154-
bool round_with_scale_factor) {
155-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
153+
c10::optional<ArrayRef<double>> scale_factors) {
154+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
156155
auto scale_h = get_scale_value(scale_factors, 0);
157156
auto scale_w = get_scale_value(scale_factors, 1);
158157
return at::upsample_nearest2d(input, osize, scale_h, scale_w);
@@ -161,9 +160,8 @@ Tensor upsample_nearest2d(
161160
Tensor _upsample_nearest_exact2d(
162161
const Tensor& input,
163162
at::OptionalIntArrayRef output_size,
164-
c10::optional<ArrayRef<double>> scale_factors,
165-
bool round_with_scale_factor) {
166-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
163+
c10::optional<ArrayRef<double>> scale_factors) {
164+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
167165
auto scale_h = get_scale_value(scale_factors, 0);
168166
auto scale_w = get_scale_value(scale_factors, 1);
169167
return at::_upsample_nearest_exact2d(input, osize, scale_h, scale_w);

aten/src/ATen/native/UpSampleNearest3d.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,8 @@ using at::native::upsample::get_scale_value;
165165
Tensor upsample_nearest3d(
166166
const Tensor& input,
167167
at::OptionalIntArrayRef output_size,
168-
c10::optional<ArrayRef<double>> scale_factors,
169-
bool round_with_scale_factor) {
170-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
168+
c10::optional<ArrayRef<double>> scale_factors) {
169+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
171170
auto scale_d = get_scale_value(scale_factors, 0);
172171
auto scale_h = get_scale_value(scale_factors, 1);
173172
auto scale_w = get_scale_value(scale_factors, 2);
@@ -177,9 +176,8 @@ Tensor upsample_nearest3d(
177176
Tensor _upsample_nearest_exact3d(
178177
const Tensor& input,
179178
at::OptionalIntArrayRef output_size,
180-
c10::optional<ArrayRef<double>> scale_factors,
181-
bool round_with_scale_factor) {
182-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
179+
c10::optional<ArrayRef<double>> scale_factors) {
180+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
183181
auto scale_d = get_scale_value(scale_factors, 0);
184182
auto scale_h = get_scale_value(scale_factors, 1);
185183
auto scale_w = get_scale_value(scale_factors, 2);

aten/src/ATen/native/UpSampleTrilinear3d.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,8 @@ Tensor upsample_trilinear3d(
103103
const Tensor& input,
104104
at::OptionalIntArrayRef output_size,
105105
bool align_corners,
106-
c10::optional<ArrayRef<double>> scale_factors,
107-
bool round_with_scale_factor) {
108-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
106+
c10::optional<ArrayRef<double>> scale_factors) {
107+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
109108
auto scale_d = get_scale_value(scale_factors, 0);
110109
auto scale_h = get_scale_value(scale_factors, 1);
111110
auto scale_w = get_scale_value(scale_factors, 2);

aten/src/ATen/native/cuda/UpSample.cuh

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ namespace upsample {
1717
TORCH_API c10::SmallVector<int64_t, 3> compute_output_size(
1818
c10::IntArrayRef input_size, // Full input tensor size.
1919
at::OptionalIntArrayRef output_size,
20-
c10::optional<c10::ArrayRef<double>> scale_factors,
21-
bool round_with_scale_factor=false);
20+
c10::optional<c10::ArrayRef<double>> scale_factors);
2221
} // namespace upsample
2322

2423
namespace upsample_cuda {

aten/src/ATen/native/metal/ops/MetalUpsamplingNearest.mm

+2-3
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818
Tensor upsample_nearest2d_vec(
1919
const Tensor& input,
2020
at::OptionalIntArrayRef output_size,
21-
c10::optional<ArrayRef<double>> scale_factors,
22-
bool round_with_scale_factor) {
21+
c10::optional<ArrayRef<double>> scale_factors) {
2322
TORCH_CHECK(input.is_metal());
2423
auto osize =
25-
upsample::compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
24+
upsample::compute_output_size(input.sizes(), output_size, scale_factors);
2625
auto scale_h = upsample::get_scale_value(scale_factors, 0);
2726
auto scale_w = upsample::get_scale_value(scale_factors, 1);
2827
int64_t output_height = osize[0];

aten/src/ATen/native/native_functions.yaml

+12-12
Original file line numberDiff line numberDiff line change
@@ -11849,53 +11849,53 @@
1184911849
dispatch:
1185011850
CompositeImplicitAutograd: pad_symint
1185111851

11852-
- func: upsample_linear1d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11852+
- func: upsample_linear1d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor
1185311853
python_module: nn
1185411854
autogen: upsample_linear1d.vec_out
1185511855

11856-
- func: upsample_bilinear2d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11856+
- func: upsample_bilinear2d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor
1185711857
python_module: nn
1185811858
autogen: upsample_bilinear2d.vec_out
1185911859
tags: core
1186011860

11861-
- func: _upsample_bilinear2d_aa.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11861+
- func: _upsample_bilinear2d_aa.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor
1186211862
python_module: nn
1186311863
autogen: _upsample_bilinear2d_aa.vec_out
1186411864

11865-
- func: upsample_trilinear3d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11865+
- func: upsample_trilinear3d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor
1186611866
python_module: nn
1186711867
autogen: upsample_trilinear3d.vec_out
1186811868

11869-
- func: upsample_bicubic2d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11869+
- func: upsample_bicubic2d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor
1187011870
python_module: nn
1187111871
autogen: upsample_bicubic2d.vec_out
1187211872

11873-
- func: _upsample_bicubic2d_aa.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11873+
- func: _upsample_bicubic2d_aa.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor
1187411874
python_module: nn
1187511875
autogen: _upsample_bicubic2d_aa.vec_out
1187611876

11877-
- func: upsample_nearest1d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11877+
- func: upsample_nearest1d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor
1187811878
python_module: nn
1187911879
autogen: upsample_nearest1d.vec_out
1188011880

11881-
- func: _upsample_nearest_exact1d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11881+
- func: _upsample_nearest_exact1d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor
1188211882
python_module: nn
1188311883
autogen: _upsample_nearest_exact1d.vec_out
1188411884

11885-
- func: upsample_nearest2d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11885+
- func: upsample_nearest2d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor
1188611886
python_module: nn
1188711887
autogen: upsample_nearest2d.vec_out
1188811888
tags: core
1188911889

11890-
- func: _upsample_nearest_exact2d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11890+
- func: _upsample_nearest_exact2d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor
1189111891
python_module: nn
1189211892
autogen: _upsample_nearest_exact2d.vec_out
1189311893

11894-
- func: upsample_nearest3d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11894+
- func: upsample_nearest3d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor
1189511895
python_module: nn
1189611896
autogen: upsample_nearest3d.vec_out
1189711897

11898-
- func: _upsample_nearest_exact3d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors, bool round_with_scale_factor=False) -> Tensor
11898+
- func: _upsample_nearest_exact3d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor
1189911899
python_module: nn
1190011900
autogen: _upsample_nearest_exact3d.vec_out
1190111901

aten/src/ATen/native/quantized/cpu/UpSampleBilinear2d.cpp

+3-4
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,9 @@ using at::native::upsample::get_scale_value;
222222
Tensor upsample_bilinear2d_quantized_cpu(
223223
const Tensor& input,
224224
at::OptionalIntArrayRef output_size,
225-
bool align_corners,
226-
c10::optional<ArrayRef<double>> scale_factors,
227-
bool round_with_scale_factor) {
228-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
225+
bool align_corners,
226+
c10::optional<ArrayRef<double>> scale_factors) {
227+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
229228
auto scale_h = get_scale_value(scale_factors, 0);
230229
auto scale_w = get_scale_value(scale_factors, 1);
231230
return upsample_bilinear2d_quantized_cpu(input, osize, align_corners, scale_h, scale_w);

aten/src/ATen/native/quantized/cpu/UpSampleNearest2d.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,8 @@ Tensor _upsample_nearest_exact2d_quantized_cpu(
221221
Tensor upsample_nearest2d_quantized_cpu(
222222
const Tensor& input,
223223
at::OptionalIntArrayRef output_size,
224-
c10::optional<ArrayRef<double>> scale_factors,
225-
bool round_with_scale_factor) {
226-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
224+
c10::optional<ArrayRef<double>> scale_factors) {
225+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
227226
auto scale_h = get_scale_value(scale_factors, 0);
228227
auto scale_w = get_scale_value(scale_factors, 1);
229228
return upsample_nearest2d_quantized_cpu(input, osize, scale_h, scale_w);
@@ -232,9 +231,8 @@ Tensor upsample_nearest2d_quantized_cpu(
232231
Tensor _upsample_nearest_exact2d_quantized_cpu(
233232
const Tensor& input,
234233
at::OptionalIntArrayRef output_size,
235-
c10::optional<ArrayRef<double>> scale_factors,
236-
bool round_with_scale_factor) {
237-
auto osize = compute_output_size(input.sizes(), output_size, scale_factors, round_with_scale_factor);
234+
c10::optional<ArrayRef<double>> scale_factors) {
235+
auto osize = compute_output_size(input.sizes(), output_size, scale_factors);
238236
auto scale_h = get_scale_value(scale_factors, 0);
239237
auto scale_w = get_scale_value(scale_factors, 1);
240238
return _upsample_nearest_exact2d_quantized_cpu(input, osize, scale_h, scale_w);

test/cpp/tensorexpr/test_quantization.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -319,11 +319,10 @@ TEST_F(Quantization, QuantUpsampleNearst2dDequantUInt8) {
319319
%2 : int = prim::Constant[value=13]()
320320
%4 : NoneType = prim::Constant()
321321
%3 : int[] = prim::Constant[value=[6, 6]]()
322-
%5 : bool = prim::Constant[value=1]()
323322
%qz : int = prim::Constant[value=13]()
324323
%qs : float = prim::Constant[value=0.1]()
325324
%q : QUInt8(1, 1, 4, 4) = aten::quantize_per_tensor(%x, %qs, %qz, %2)
326-
%qu : QUInt8(1, 1, 6, 6) = aten::upsample_nearest2d(%q, %3, %4, %5)
325+
%qu : QUInt8(1, 1, 6, 6) = aten::upsample_nearest2d(%q, %3, %4)
327326
%6 : Float(1, 1, 6, 6) = aten::dequantize(%qu)
328327
return (%6))IR";
329328
auto graph = std::make_shared<Graph>();
@@ -357,8 +356,7 @@ TEST_F(Quantization, UpsampleNearst2d) {
357356
graph(%x : Float(1, 1, 2, 2, strides=[2, 2, 2, 1], device=cpu)):
358357
%4 : NoneType = prim::Constant()
359358
%3 : int[] = prim::Constant[value=[4, 4]]()
360-
%5 : bool = prim::Constant[value=1]()
361-
%u : Float(1, 1, 4, 4) = aten::upsample_nearest2d(%x, %3, %4, %5)
359+
%u : Float(1, 1, 4, 4) = aten::upsample_nearest2d(%x, %3, %4)
362360
return (%u))IR";
363361
auto graph = std::make_shared<Graph>();
364362
parseIR(graph_string, &*graph);

test/test_nnapi.py

-1
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,6 @@ def test_upsample_nearest2d(self):
473473
self.check(torch.nn.UpsamplingNearest2d(size=(16, 20)), inp)
474474
self.check(torch.nn.UpsamplingNearest2d(size=(24, 32)), inp)
475475
self.check(torch.nn.UpsamplingNearest2d(size=(36, 48)), inp)
476-
self.check(torch.nn.UpsamplingNearest2d(scale_factor=(0.234, 0.234)), inp)
477476
self.check(torch.nn.UpsamplingNearest2d(scale_factor=(1.5, 1.5)), inp)
478477
self.check(torch.nn.UpsamplingNearest2d(scale_factor=(2.0, 2.0)), inp)
479478
self.check(torch.nn.UpsamplingNearest2d(scale_factor=(3.0, 3.0)), inp)

0 commit comments

Comments
 (0)