# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. import nnvm.symbol as sym from nnvm import NNVMError def test_dense(): x = sym.Variable('x') y = sym.dense(x, units=30, name="fc") assert y.list_input_names() == ["x", "fc_weight", "fc_bias"] def test_batch_norm(): x = sym.Variable('x') y = sym.dense(x, units=30, name="fc") z = sym.batch_norm(x, name='bn') assert z.list_input_names('aux_state') == ['bn_moving_mean', 'bn_moving_var'] assert z.list_input_names('read_only') == ['x', 'bn_gamma', 'bn_beta'] def test_compose(): x = sym.Variable('x') z = sym.Variable('z') y = sym.exp(sym.elemwise_add(x, x, name='add', gpu=2), name='exp', gpu=1, attr={"kk": "1"}) assert y.list_input_names() == ['x'] assert y.list_output_names() == ["exp_output"] assert y.list_attr()['gpu'] == '1' z = y.get_internals() assert z['add_output'].list_output_names() == ['add_output'] assert y.list_attr(recursive=True)['add$gpu'] == '2' def test_default_input(): x = sym.Variable('x') y = sym.dense(data=x, units=30, name='fc', use_bias=False) assert y.list_input_names() == ['x', 'fc_weight'] tname = [z.list_output_names()[0] for z in y.list_input_variables()] assert tname == y.list_input_names() try: z = sym.elemwise_add(x) assert False except NNVMError: pass def test_copy(): x = sym.Variable('x') z = sym.Variable('z') y = sym.exp(sym.elemwise_add(x, x, name='add', gpu=2), name='exp', gpu=1, attr={"kk": "1"}) assert y.__copy__().debug_str() == y.debug_str() def test_op_name(): x = sym.Variable('x') y = sym.exp(x) op_name = y.attr("op_name") op_func = sym.__dict__[op_name] z = op_func(x) if __name__ == "__main__": test_op_name() test_copy() test_default_input() test_compose() test_batch_norm()