|
- # -*- 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 megengine as mge
- import megengine.functional as F
- import megengine.module as M
- from megengine.core import tensor
-
-
- def test_mge_81():
- np.random.seed(0)
- N, D = 3, 4
- x = mge.Parameter(value=np.random.normal(size=(N, D)).astype(np.float32))
- y = mge.Parameter(value=np.random.normal(size=(N, D)).astype(np.float32))
- z = mge.Parameter(value=np.random.normal(size=(N, D)).astype(np.float32))
- a = x * y
- b = a + z
- c = F.sum(b)
- grad_x = F.grad(c, x, use_virtual_grad=False)
- grad_y = F.grad(c, y, use_virtual_grad=False)
- grad_z = F.grad(c, z, use_virtual_grad=False)
- print(grad_x.numpy())
- print(grad_y.numpy())
- print(grad_z.numpy())
- m = M.BatchNorm2d(4)
- input = tensor(np.zeros((64, 4, 32, 32), dtype=np.float32))
- _ = m(input)
- m = M.BatchNorm2d(4, affine=False)
- _ = m(input)
|