You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_conv2d_op.py 2.5 kB

5 years ago
5 years ago
5 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # Copyright 2019 Huawei Technologies Co., Ltd
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. # ============================================================================
  15. import pytest
  16. from mindspore import Tensor
  17. from mindspore.ops import operations as P
  18. import mindspore.nn as nn
  19. import numpy as np
  20. import mindspore.context as context
  21. from mindspore.common.initializer import initializer
  22. from mindspore.common.parameter import Parameter
  23. context.set_context(mode=context.GRAPH_MODE, device_target='CPU')
  24. class NetConv2d(nn.Cell):
  25. def __init__(self):
  26. super(NetConv2d, self).__init__()
  27. out_channel = 2
  28. kernel_size = 1
  29. self.conv = P.Conv2D(out_channel,
  30. kernel_size,
  31. mode=1,
  32. pad_mode="valid",
  33. pad=0,
  34. stride=1,
  35. dilation=1,
  36. group=1)
  37. self.w = Parameter(initializer(
  38. Tensor(np.arange(2 * 3 * 1 * 1).reshape(2, 3, 1, 1).astype(np.float32)), [2, 3, 1, 1]), name='w')
  39. self.x = Parameter(initializer(
  40. Tensor(np.arange(1 * 3 * 3 * 3).reshape(1, 3, 3, 3).astype(np.float32)), [1, 3, 3, 3]), name='x')
  41. def construct(self):
  42. return self.conv(self.x, self.w)
  43. @pytest.mark.level0
  44. @pytest.mark.platform_x86_cpu
  45. @pytest.mark.env_onecard
  46. def test_conv2d():
  47. conv2d = NetConv2d()
  48. output = conv2d()
  49. print("================================")
  50. """
  51. expect output:
  52. [[[[ 45. 48. 51.]
  53. [ 54. 57. 60.]
  54. [ 63. 66. 69.]]
  55. [[126. 138. 150.]
  56. [162. 174. 186.]
  57. [198. 210. 222.]]]]
  58. """
  59. expect = np.array([[[[45, 48, 51],
  60. [54, 57, 60],
  61. [63, 66, 69]],
  62. [[126, 138, 150],
  63. [162, 174, 186],
  64. [198, 210, 222]]]]).astype(np.float32)
  65. print(output)
  66. assert (output.asnumpy() == expect).all()