ó ùµÈ[c@@sûdZddlmZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z mZmZddlmZdd lmZmZyejd d ejƒZWnek rÝdZnXd „Zd „ZeƒdS(syInterface for NDArray functions executed by torch backend. Install Torch and compile with USE_TORCH=1 to use this module.i(tabsolute_importNi(t_LIB(tc_arrayt c_str_arraytc_handle_arraytpy_strtbuild_param_doc(tmx_uinttmx_floattFunctionHandle(t check_call(tNDArrayt_new_empty_handles libluajit.sotmodec @s¹tƒ‰tƒ}tƒ‰tjƒ}ttjˆtjˆƒtj|ƒtjˆƒtj|ƒƒƒˆj‰ˆj‰|j}|j}tjƒ}tjƒ}tƒ}tj tjƒƒ}tj tjƒƒ}tj tjƒƒ}tjƒ} ttj ˆtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj| ƒƒƒt |jƒ} | j dƒsƒdSt|jƒ} tgt| ƒD]} t || ƒ^q¢gt| ƒD]} t || ƒ^qÈgt| ƒD]} t || ƒ^qîƒ} ˆdkrHdjgtˆƒD]} d| ^q,ƒ}nd}dddd d d jd | d d| d|ƒ}‡‡‡fd†}|}| d |_||_|S(s0Create a Torch function from the FunctionHandle.t_th_it,sres%d sres s%Interface for Torch function {name}. s2Invoke with {res}= mxnet.th.{name}(Parameters) or s%mxnet.th.{name}({res}, Parameters). s {param_str} s Reference: s9https://github.com/torch/torch7/blob/master/doc/maths.md tnameit param_strtresc @syg}d}d}x|D]ù}t|tƒrR|j|ƒ|d7}|d7}qt|tƒr‚|d7}|t|ƒd7}qt|tƒr²|d7}|t|ƒd7}qt|tƒrâ|d7}|t|ƒd7}qt|tƒr|d7}|t|ƒd7}qqW|d }t|ƒˆkr}gtˆƒD]}tt ƒƒ^q?|}dˆ|}dˆ|}n:t|ƒˆˆkr–n!t d d d ˆˆˆfƒ‚||d <||d t __future__RR%RNtbaseRRRRRRR;RRR R tndarrayR R tCDLLt RTLD_GLOBALt_LUAJITtOSErrorR:RKRV(((sK/usr/local/lib/python2.7/site-packages/mxnet-1.3.1-py2.7.egg/mxnet/torch.pyts  (   ‚