|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- # -*- coding: utf-8 -*-
- # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
- #
- # Copyright (c) 2014-2020 Megvii Inc. All rights reserved.
- #
- # Unless required by applicable law or agreed to in writing,
- # software distributed under the License is distributed on an
- # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- import numpy as np
- import pytest
-
- import megengine.functional as F
- from megengine import tensor
- from megengine.test import assertTensorClose
-
-
- def test_linear_interpolate():
- inp = tensor(np.arange(1, 3, dtype=np.float32).reshape(1, 1, 2))
-
- out = F.interpolate(inp, scale_factor=2.0, mode="LINEAR")
- out2 = F.interpolate(inp, 4, mode="LINEAR")
-
- assertTensorClose(
- out.numpy(), np.array([[[1.0, 1.25, 1.75, 2.0]]], dtype=np.float32)
- )
- assertTensorClose(
- out2.numpy(), np.array([[[1.0, 1.25, 1.75, 2.0]]], dtype=np.float32)
- )
-
-
- def test_many_batch_interpolate():
- inp = tensor(np.arange(1, 9, dtype=np.float32).reshape(2, 1, 2, 2))
-
- out = F.interpolate(inp, [4, 4])
- out2 = F.interpolate(inp, scale_factor=2.0)
-
- assertTensorClose(out.numpy(), out2.numpy())
-
-
- def test_assign_corner_interpolate():
- inp = tensor(np.arange(1, 5, dtype=np.float32).reshape(1, 1, 2, 2))
-
- out = F.interpolate(inp, [4, 4], align_corners=True)
- out2 = F.interpolate(inp, scale_factor=2.0, align_corners=True)
-
- assertTensorClose(out.numpy(), out2.numpy())
-
-
- def test_error_shape_linear_interpolate():
- inp = tensor(np.arange(1, 5, dtype=np.float32).reshape(1, 1, 2, 2))
-
- with pytest.raises(ValueError):
- F.interpolate(inp, scale_factor=2.0, mode="LINEAR")
-
-
- def test_inappropriate_scale_linear_interpolate():
- inp = tensor(np.arange(1, 3, dtype=np.float32).reshape(1, 1, 2))
-
- with pytest.raises(ValueError):
- F.interpolate(inp, scale_factor=[2.0, 3.0], mode="LINEAR")
|