ó R;]c@sádZddlZddlZddlZddlmZddlmZm Z ddl m Z ddl m Z mZmZmZdd lmZdd l mZmZdd lmZed „Zd „ZeddeƒdS(s/Register backend ops in mxnet.symbol namespace.iÿÿÿÿNi(t _internal(t SymbolBaset_symbol_creatori(t AttrScope(tmx_uintt check_callt_LIBtpy_str(t _build_doc(t_Nullt_init_op_module(t NameManagerc Cs0tjƒ}tjƒ}tƒ}tjtjƒƒ}tjtjƒƒ}tjtjƒƒ} tjƒ} tjƒ} ttj|tj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj| ƒtj| ƒtj| ƒƒ ƒt|j ƒ} gt | ƒD]} t || ƒ^q}gt | ƒD]} t || ƒ^q0}t | j ƒ} | j d!k ryt | j ƒnd} t |t |j ƒ||gt | ƒD]} t | | ƒ^q¤| | ƒ}d!}d!}g}g}g}g}xèt | ƒD]Ú} || || }}|dkr;|}|jd|ƒqú|jdƒsY|jdƒr¶| sltdƒ‚|jdƒr•|jd|ƒ|}qÔ|jd |ƒ|j|ƒqú|jd|ƒ|j|ƒqúW|jd ƒ|jd ƒ|jd ƒ|jd ƒ||}g}|rÏ|jd||fƒ|s£|jdj|ƒƒ|d!k r~|jd|||fƒn|jd|jƒƒ| rµ|jd| | fƒn|jd|j ƒq£nÔ|jd|dj|ƒfƒ|s£|jdƒx'|D]}|jdjd|ƒƒq Wx(|D] }|jd|||fƒq3W|d!k r€|jd|||fƒn|jd|jƒ|j fƒn|r¹|jdƒntjdjgdjd|ƒjtƒD]"}|jƒrýd|n|^qáƒ}|jd |ƒdj|ƒ|fS("s<Generate function for symbol op by handle and function name.ttdtypes%s=_NulltNDArraytSymbolsROp can only have one argument with variable size and it must be the last argument.s[]s*%ss%s=Nones name=Nones attr=Nonesout=Nones**kwargss def %s(*%s, **kwargs):sÊ sym_args = [] for i in {}: assert isinstance(i, SymbolBase), \ "Positional arguments must be Symbol instances, " \ "but got %s"%str(i) sym_args.append(i)sJ if '%s' in kwargs: kwargs['%s'] = np.dtype(kwargs['%s']).names¢ attr = kwargs.pop('attr', None) kwargs.update(AttrScope.current.get(attr)) name = kwargs.pop('name', None) name = NameManager.current.get(name, '%s') _ = kwargs.pop('out', None) keys = [] vals = [] sym_kwargs = dict() for k, v in kwargs.items(): if isinstance(v, SymbolBase): sym_kwargs[k] = v else: keys.append(k) vals.append(v)sj if '%s' not in kwargs: keys.append('%s') vals.append(len(sym_args) + len(sym_kwargs))sG return _symbol_creator(%d, sym_args, sym_kwargs, keys, vals, name)s def %s(%s):s, s kwargs.update(AttrScope.current.get(attr)) sym_kwargs = dict() _keys = [] _vals = [] for _k, _v in kwargs.items(): if isinstance(_v, SymbolBase): sym_kwargs[_k] = _v else: _keys.append(_k) _vals.append(_v)sÁ if {name} is not None: assert isinstance({name}, SymbolBase), \ "Argument {name} must be Symbol instances, but got %s"%str({name}) sym_kwargs['{name}'] = {name}tnamesL if %s is not _Null: _keys.append('%s') _vals.append(%s)s[ if %s is not _Null: _keys.append('%s') _vals.append(np.dtype(%s).name)st name = NameManager.current.get(name, '%s') return _symbol_creator(%d, None, sym_kwargs, _keys, _vals, name)s return (0,)sr"""{doc_str}"""tdoc_strs iN(tctypestc_char_pRtPOINTERRRtMXSymbolGetAtomicSymbolInfotbyreftinttvaluetrangeRtNoneRtappendt startswithtAssertionErrortendswithtformattlowertjoint_ostlinesept splitlinestTruetstriptinsert(thandleRt func_nametsignature_onlyt real_nametdesctnum_argst arg_namest arg_typest arg_descstkey_var_num_argstret_typetnargtiRt dtype_nametarr_namet ndsignaturet signaturet ndarg_namest kwarg_namestatypetcodetst doc_str_lines((sU/usr/local/lib/python2.7/site-packages/mxnet-1.2.1-py2.7.egg/mxnet/symbol/register.pyt_generate_symbol_function_code"sÆ           ))$ &                3cBsQe|||ƒ\}}i}|d|U||}||_||_d|_|S(s5Create a symbol function by handle and function name.s mxnet.symbolN(R?Rt__name__t__doc__t __module__(R(RR)R<Rtlocaltsymbol_function((sU/usr/local/lib/python2.7/site-packages/mxnet-1.2.1-py2.7.egg/mxnet/symbol/register.pyt_make_symbol_function¾s     tmxnettsymbol(RAtosR"RtnumpytnpR RRRt attributeRtbaseRRRRt symbol_docRR R RR tFalseR?RE(((sU/usr/local/lib/python2.7/site-packages/mxnet-1.2.1-py2.7.egg/mxnet/symbol/register.pyts   " œ