mmdnn/conversion/mxnet/mxnet_emitter.py [1224:1264]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if not self.layers_codes.get(IR_node.pattern, None):
            class_inits, func_code = self._gen_scope_code(IR_node)
            variables, variable_codes, init_code, func_code = self.process_inits_func_code(class_inits, func_code)

            states = [self.IR_graph.get_node(s).real_variable_name for s in IR_node.in_edges]
            states.pop(0)
            states_code = ', '.join(states)

            class_code ='''
class _{}(mx.rnn.BaseRNNCell):
    def __init__(self, {}):

{}

{}

            '''.format(IR_node.pattern,
            ', '.join(variables),
            init_code,
            func_code)
            self.layers_codes[IR_node.pattern] = class_code

            if not hasattr(self, 'pattern_variables'):
                self.pattern_variables = {IR_node.pattern: variables}
            else:
                self.pattern_variables[IR_node.pattern] = variables

            code = variable_codes
            code.append("{:<15} = _{}({})({})".format(
                IR_node.real_variable_name,
                IR_node.pattern,
                ', '.join(variables),
                ', '.join(self.parent_variable_name(IR_node, s) for s in IR_node.in_edges)))
        else:
            code = "{:<15} = _{}({})({})".format(
                IR_node.real_variable_name,
                IR_node.pattern,
                ', '.join(self.pattern_variables[IR_node.pattern]),
                ', '.join(self.parent_variable_name(IR_node, s) for s in IR_node.in_edges))

        return code
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



mmdnn/conversion/mxnet/mxnet_emitter.py [1278:1318]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if not self.layers_codes.get(IR_node.pattern, None):
            class_inits, func_code = self._gen_scope_code(IR_node)
            variables, variable_codes, init_code, func_code = self.process_inits_func_code(class_inits, func_code)

            states = [self.IR_graph.get_node(s).real_variable_name for s in IR_node.in_edges]
            states.pop(0)
            states_code = ', '.join(states)

            class_code ='''
class _{}(mx.rnn.BaseRNNCell):
    def __init__(self, {}):

{}

{}

            '''.format(IR_node.pattern,
            ', '.join(variables),
            init_code,
            func_code)
            self.layers_codes[IR_node.pattern] = class_code

            if not hasattr(self, 'pattern_variables'):
                self.pattern_variables = {IR_node.pattern: variables}
            else:
                self.pattern_variables[IR_node.pattern] = variables

            code = variable_codes
            code.append("{:<15} = _{}({})({})".format(
                IR_node.real_variable_name,
                IR_node.pattern,
                ', '.join(variables),
                ', '.join(self.parent_variable_name(IR_node, s) for s in IR_node.in_edges)))
        else:
            code = "{:<15} = _{}({})({})".format(
                IR_node.real_variable_name,
                IR_node.pattern,
                ', '.join(self.pattern_variables[IR_node.pattern]),
                ', '.join(self.parent_variable_name(IR_node, s) for s in IR_node.in_edges))

        return code
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



