
    Ph<                     <'   d dl mZmZ d dlmc mZ d dlZd dlZd dl	Zd dl
Zd dlZd dlmZmZ d dlmZ d dlZd dlmZ d dlmZmZmZmZ d dlZd dlmZ  ej6                         ej8                  k(  sJ dZd	Zd
Zd Z  G d de!      Z" ejF                  ddg      Z$dddejJ                  dfdZ&g deeefeeefffdeeeefeeeefffdeeeeefeeeeefffdeeefeeefffdeeeefeeeefffdeeeeefeeeeefffdeeefeeefefdffdeeefdfdeeeefdddfd eeeeefdfd!eeeefd"dd"gffd#eeefd$fd#eeefd%d&fd'eeeefd$dd(fd'eeeefd%d&d(fd)eeeeefd$fd* ejN                  d+d,ggg       ejN                  d-d"ggg      ddd ffd. ejN                  d+d,gggg       ejN                  d-d"gggg      ddd ffd/ ejN                  d+d,ggggg       ejN                  d-d"ggggg      ddd ffd0eeefd1fd2eeeefd1fd3eeefd4fd5eeeefd
d6gffd7eeeeefg d8ffd9eeefd4ddfd:eeeefd
d6gfddfd;eeeeefg d8fddfd<eeefd=dd>fd?eeefd=fd@eeefd=fd@eeeefd=dAfdBeeeefd=fdBeeeeefd=dAfdCeeefd=fdDeeefdEddfdDeeefdFdGfdHeeefdIddfdHeeefdIdGfdJed-z
  ed-z
  ed-z
  fdIfdKeeefdLddfdKeeefdMdGfdNeeefdIddfdNeeefddGfdOeeefdPfdOeeefdQdGfdReeefdIfdReeefddGfdSeeefdPfdSeeefdQdGfdTeeefdUddfdTeeefdUdGfdVeefdWfdVeefdXdGfdYeeefdZddfd[eeefdIfd\eeefdIfd]eeefdIddfd^eeefd_fd`eeefd_ddfd`eeefd d"ejP                  fdadfdbeeefdIddfdceeefdIddfddeeefdIddfdeeeefd_ddfdfeefeeffdddggffdfeefeefeffdhddggffdieeefeeef ejR                  eee      ffdj ejN                  g dkg dlg       ejT                  dmd"      fddfdn ejN                  g do       ejT                  d
d"       ejN                  d d,g      ffdpeef e$ ejV                  e             e$ ejX                  e            dddfdqdrfdpd eeef e$ ejV                  e             e$ ejX                  e             e$ ejV                  e             e$ ejX                  e            dfdsdrfdpd eeef e$ ejV                  e             e$ ejX                  e             e$ ejV                  e             e$ ejX                  e            dfdtdrfdpeef e$ ejV                  e             e$ ejX                  e             e$ ejV                  e             e$ ejX                  e            dfdudrfdpeef e$ ejV                  e             e$ ejX                  e            d e$ ejX                  e            dfdvdrfdpeef e$ ejV                  e             e$ ejX                  e             e$ ejV                  e            ddfdwdrfdpeef e$ ejV                  e             e$ ejX                  e            dddfdxdrfdpeef e$ ejV                  e             e$ ejX                  e             e$ ejV                  e             e$ ejX                  e            dfdydrfdpeef e$ ejV                  e             e$ ejX                  e            d e$ ejX                  e            dfdzdrfdpeef e$ ejV                  e             e$ ejX                  e             e$ ejV                  e            ddfd{drfd|eeef e$ ejR                  e             e$ ejX                  e            ffd}eeeefd
gfddd~dgffd}eeeefd
g e$ ejT                  e            fddd~dgffd}eeeefd
gd e$ ejT                  e            fddd~dgffd}eeeefd
g e$ ejT                  e             e$ ejT                  e            fddg dffdeeefd- ejT                  d
      ffdeeefdfd ejZ                   ejV                  d"d
      d        ejN                  g d      fdfd ejT                  ed       ejT                  ed      ffd ejT                  ed       ejT                  ed      ddfdfd ejZ                   ejV                  ed	      d-       ej\                   ejV                  ed	      d-      ffdd"ef ej^                  edej`                        ffdd ejb                  d"      je                  d      ffdd"ef e$ ejT                  d"e            ffdd"ef e$ ejT                  d"e            ffdd"ef e$ ejT                  d"e            ffdd"ef e$ ejT                  d"e            ffdd"ef ejT                  d"e      fdfdd"ef ejT                  d"e      fdfdd"ef ejT                  d"e      fdfdd"ef ejT                  d"e      fdfdefefefffdd"ef e$ ejT                  d"e            ffdd"ef e$ ejT                  d"e            ffdd"ef e$ ejT                  d"e            ffdeefeef e$ ejT                  e            ffdddedd"f ejf                  ed-d6d6g      ffddd-d-gffdeefeefffdeefdIfdeefeefffdeefeefeefffdeeefdIfdeeeefdd"gfddd,d
gddgffdeeeef e$ ejT                  eeed            ffdeefdddg ddgffdeefdddg ddgffd ejN                  g dg       ejN                  g dg      ffdeef e$ ej^                  eefej`                              d-d e$ ejV                  e            ffd ejV                  d"d      ji                          e$ ejT                  d"d             e$ ejV                  d"d            ffd ejV                  d"d      ji                          e$ ejT                  d"d             e$ ejV                  d"d            dddfdfd ejT                  eee      j[                  d      jk                         jm                          ej^                  d-eeefejn                         ejp                  efeejn                         ej^                  d-eefejn                        ffd ejV                  eeee      ddfd ejV                  eeee      ddfd ejR                  d"d"      js                  d-d-d"d"      ddfd ejV                  eeee      ddfd ejV                  eeee      ddfd ejR                  d"d"      js                  d-d-d"d"      ddfd ejV                  eeee      ddfd ejV                  eeee      ddfd ejR                  d"d"      js                  d-d-d"d"      ddfd ejV                  eeee      ddfd ejV                  eeee      ddfd ejR                  d"d"      js                  d-d-d"d"      ddfd ejV                  eeee      ddfd ejV                  eeee      ddfd ejR                  d"d"      js                  d-d"d"      ddfd ejV                  eee      ddfd ejV                  eee      ddfd ejR                  d"d"      js                  d-d"d"      ddfd ejV                  eee      ddfd ejV                  eee      ddfd ejR                  d"d"      js                  d-d"d"      ddfd ejV                  eee      ddfd ejV                  eee      ddfd ejV                  eeeee      ddfd ejV                  eeeee      ddfd ejR                  d"d"d"      js                  d-d-d"d"d"      ddfd ejV                  eeeee      ddfd ejV                  eeeee      ddfd ejR                  d"d"d"      js                  d-d-d"d"d"      ddfd ejV                  eeeee      ddfd ejV                  eeeee      ddfd ejR                  d"d"      js                  d-d-d"d"      ddfd ejV                  eeee      ddfd ejV                  eeee      ddfd ejV                  eeee      ddfd ejV                  eeee      ddfd ejV                  eeee      ddfd ejV                  eee      ddfd ejV                  eee      ddfd ejV                  eee      ddfd ejV                  eee      ddfd ejV                  eeeee      ddfd ejV                  eeeee      ddfd ejV                  eeeee      ddfd ejV                  eeeee      ddfZ:dZ;d Z<d Z=d Z>d Z?d Z@d ZA G d d      ZBd ZCddZDh dZEddZFd eeefeefeeffddeefeefddeefeefddeefeefdddd ejV                  d	d	d
       ejV                  d	d	d
      fddddd ejV                  d-d-d-      fddgZGh dZHdZId ZJdddZKd ZLd ZMd ZNd ZOd ZPy(      )BroadcastingList2BroadcastingList3N)module_testsnew_module_tests)is_iterable_of_tensors)deepcopy)AnyDictListUnioninf   
      c                 J    t        | t              rt        d | D              S | S )Nc              3   2   K   | ]  }t        |        y wN)unpack_variables).0elems     |C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/testing/_internal/jit_metaprogramming_utils.py	<genexpr>z#unpack_variables.<locals>.<genexpr>   s     =%d+s   )
isinstancetuple)argss    r   r   r      s"    $====    c                       e Zd Zy)dont_convertN)__name__
__module____qualname__ r   r   r   r   !   s    r   r   non_differentiabletensorTFc                    
 t        | t              s| f} 
fd
t        
fd| D              }|r*|j                         D ci c]  \  }}| 
|       c}}ni }	||	fS c c}}w )Nc           
      4   fd}d }t        | t        j                  t        f      r| S t        | t              r5t        |       dk(  r' |t        j                  d            }	|_        |S t        | t              rNt        | d   t        j                        s1 | |t        j                  | d            j                  	      S t        | t              rtt        | j                  t        j                        r( | || j                  j                                    S  | || j                  j                                    S t        | t        j                        r| j                         j                  k7  rt        dd       | ||             j                         j                        j!                         }	xr" |j#                         xs |j                         |_        |S t%        |       r  |             S | S )	Nc                 d    r| j                         dk  r| j                         S t        |       S )N   )numelclonenoncontiguous_like)r%   non_contiguouss    r   maybe_non_contigz7create_input.<locals>.map_arg.<locals>.maybe_non_contig+   s*    !V\\^a%7||~%%f--r   c                 "    | j                         S r   )conj)r%   s    r   	conjugatez0create_input.<locals>.map_arg.<locals>.conjugate1   s    ;;= r   r   r#   )dtypedevice)r3   zFUser provided tensor is real for a test that runs with complex dtype, zwhich is not supported for now)r   torchSizer   r   lenrandnrequires_gradTensorrequires_grad_r$   r%   to
is_complexRuntimeErrordetachr+   is_floating_pointcallable)
argr.   r1   varvr3   r2   map_argr-   r8   s
        r   rD   zcreate_input.<locals>.map_arg*   s   	.	! cEJJ56JU#CAEKK%GHC -CJU#Js1vu||,L-ekk3eTZ.[\]llmz{{/0#**ell3 !1#**--v-2N!OPP-cjjmm6m.JKLLU\\*~~5#3#33"#k#CE E *3/0779<<F<KQQSA+Y1D1D1F1X!,,.AOHc]3U6:;;Jr   c              3   .   K   | ]  } |        y wr   r#   )r   rA   rD   s     r   r   zcreate_input.<locals>.<genexpr>M   s     7YcWS\Ys   )r   r   items)	call_argsr8   r-   call_kwargsr2   r3   args_outkrC   
kwargs_outrD   s    `` ``    @r   create_inputrL   &   sr    i'L	" "F 7Y77HDOK,=,=,?@,?DAq!WQZ-,?@UWJZ As   A(conv1dconv2dconv3dconv_transpose1dconv_transpose2dconv_transpose3dconv_tbcr)   
avg_pool1d   
avg_pool2d )T
avg_pool3dfractional_max_pool2drV   
max_pool1d)r)      )r)   r\   r\   r\   FTwith_indices
max_pool2d)Tzaten::max_pool2d_with_indices
max_pool3dmax_unpool1d       @   r\   max_unpool2dmax_unpool3d	lp_pool1d)ra   rV   r)   	lp_pool2dadaptive_max_pool1d)r   adaptive_max_pool2d   adaptive_max_pool3d)rV   r)   r)   adaptive_avg_pool1dadaptive_avg_pool2dadaptive_avg_pool3ddropout)      ?)Tzaten::native_dropoutalpha_dropout	dropout2dbatched	dropout3dfeature_alpha_dropout	threshold)皙?ra   )rv   ra   Tinplacerelur#   gluhardtanh)      ro   )r{   ro   Trelu6elu)?)r~   Tselucelu
leaky_relu)g{Gz?rrelu)rv   333333?F)rv   r   FT
hardshrink)g?
tanhshrinksoftsignsoftplussoftmin)r   softmaxwith_all_argstanhsigmoidsilulog_softmaxlinearzaten::linearaddmmbilinear	embedding)r\   r)   rb   r   )rb   rV   r)   r      embedding_bag)r\   r)   rb   r)   
batch_normtraining)Taten::_batch_norm_impl_index	size_zerosize_zero_inferencewith_weight_and_bias_trainingwith_only_bias_trainingwith_only_weight_training	inferencewith_weight_and_bias_inferencewith_only_bias_inferencewith_only_weight_inferenceinstance_norm
layer_normaten::contiguousr   with_only_weightwith_only_biaswith_weight_and_bias)r   r   zaten::addcmul
group_normlocal_response_norm)r)   nll_loss)dim)r\   r   rb   poisson_nll_lossfullkl_divcross_entropyr2    binary_cross_entropy_with_logitssmooth_l1_loss
huber_lossl1_lossmse_loss	with_gradmargin_ranking_losshinge_embedding_losssoft_margin_lossmultilabel_soft_margin_losscosine_embedding_loss)pixel_shuffle)r\   	   rb   rb   rU   )pixel_unshuffle)r\   r\      r   rU   affine_gridpad)rV   rV   rb   r)   pairwise_distancepdistcosine_similaritytriplet_margin_loss	normalizeunfoldfold)r\   r   r   grid_samplegumbel_softmax)ra   )zaten::softmaxz	aten::addz	aten::divz	aten::neg)ra   Thardmultilabel_margin_loss)g?gɿgQ?)r   r   r\   multi_margin_lossg      ?binary_cross_entropymeansize_averagectc_lossupsample)Nra   
with_scale)rb   	with_sizeinterpolate
nearest_4dnearest_4d_with_scalenearest_4d_with_sizearea_4darea_4d_with_scalearea_4d_with_sizebilinear_4dbilinear_4d_with_scalebilinear_4d_with_size
bicubic_4dbicubic_4d_with_scalebicubic_4d_with_size
nearest_3dnearest_3d_with_scalenearest_3d_with_sizearea_3darea_3d_with_scalearea_3d_with_size	linear_3dlinear_3d_with_scalelinear_3d_with_sizenearest_5d_with_scalenearest_5d_with_sizearea_5darea_5d_with_scalearea_5d_with_sizetrilinear_5dtrilinear_5d_with_scaletrilinear_5d_with_size)r)   NnearestNF%nearest_4d_not_recompute_scale_factor)rb   Nr   NF/nearest_4d_with_size_not_recompute_scale_factor)Nra   r   NF1bilinear_4d_with_scale_not_recompute_scale_factor)rb   Nr   NF0bilinear_4d_with_size_not_recompute_scale_factor)Nra   bicubicNF0bicubic_4d_with_scale_not_recompute_scale_factor)rb   Nr   NF/bicubic_4d_with_size_not_recompute_scale_factor)Nra   r   NF0nearest_3d_with_scale_not_recompute_scale_factor/nearest_3d_with_size_not_recompute_scale_factor)Nra   r   NF/linear_3d_with_scale_not_recompute_scale_factor)rb   Nr   NF.linear_3d_with_size_not_recompute_scale_factor0nearest_5d_with_scale_not_recompute_scale_factor/nearest_5d_with_size_not_recompute_scale_factor)Nra   	trilinearNF2trilinear_5d_with_scale_not_recompute_scale_factor)rb   Nr   NF1trilinear_5d_with_size_not_recompute_scale_factorz#
def the_method({}):
    return {}
c                     t        | t              rt        |       S t        | t        j                        rdt        |       z   S t        |       S )Ntorch.)r   strasciir4   r9   )values    r   value_to_literalr  A  s=    %U|%&#e*$$5zr   c           
         dj                  |j                         D cg c]  \  }}|dz   t        |      z    c}}      }|d   }|dk(  r|dd  }dj                  |      }|t        |      rt        |      rdndz  }||z  }|dk(  s|dk(  rd	|  d
| d}	|	S |dk(  r| d|  d
| d}	|	S |dk(  rd|  d
| d}	|	S t	        d      c c}}w )N, =r   methodr\   rX   
functionalfunctionr  ().nn_functionalztorch.nn.functional.zUnsupported function type)joinrF   r  r6   	TypeError)
method_name	func_typer   kwargsrJ   rC   
kwargs_strself_argargument_strcalls
             r   get_callr  J  s   fllnUndaAG&6q&99nUVJAwHHABx99T?LCI#f+D2=LJLL I$;}Al^15 K 
h	1[M<.: K 
o	%%k]!L>C K 344! Vs   C
c                 0    | t         k(  ry| t          k(  ry| S )Nzmath.infz	-math.infr   )xs    r   get_constantr  _  s    CxSDyHr   c                 &   g }g }g }| D ]  }t        |t        j                        rBdt        |       }|j	                  |       |j	                  |       |j	                  |       `t        |      rNdt        |       }|j	                  |dz          |j	                  |       |j	                  t        |             t        |t              r|j	                  d| d       |j	                  t        t        |                    |||fS )Niz: List[torch.Tensor]')	r   r4   r9   r6   appendr   listr  r  )r   formalstensorsactualsrA   names         r   get_script_argsr)  f  s    G=?GGc5<<(s7|n%DNN4 NN4 NN3#C(s7|n%DNN4"889NN4 NN49%S!NNQse1:&NN3|C012  Wg&&r   c                     t        |      \  }}}t        | |||      }t        j                  dj	                  |      |      }t
        j                  j                  |      }	|	j                  |fS Nr
  )	r)  r  script_templateformatr  r4   jitCompilationUnit
the_method)
r  r  r   r  r%  r&  r'  r  scriptCUs
             r   gen_script_fn_and_argsr3  }  sa     / 5GWgKGV<D##DIIg$6=F		"	"6	*B=='!!r   c                       fdS )Nc                      t        g| i |\  }}j                  |j                  |        || } |j                  | _        |S r   )r3  assertExportImportgraph	graph_for
last_graph)	r   r  fnr&  outputr  r  	script_fnselfs	        r   r<  z#create_script_fn.<locals>.script_fn  sR    ,[)UdUfUG'2W+r||W5	r   r#   )r=  r  r  r<  s   ```@r   create_script_fnr>    s     r   c                       e Zd ZU ee   ed<   ee   ed<   ee   ed<   ee   ed<   eeef   ed<   ee   ed<   eeef   ed<   eeef   ed<   ed	        Z	d
 Z
ddZy)SplitInputsall_tensorstensor_argsnontensor_args	arg_typestensor_kwargskwarg_ordernontensor_kwargskwarg_typesc                 P    t        | t        j                        xs t        |       S r   )r   r4   r9   r   )rA   s    r   _is_tensor_inputzSplitInputs._is_tensor_input  s    #u||,K0Fs0KKr   c                 ~   |D cg c]  }| j                  |      rdnd c}| _        |j                         D ci c]  \  }}|| j                  |      rdnd c}}| _        |D cg c]  }| j                  |      s| c}| _        |D cg c]  }| j                  |      r| c}| _        |j                         D ci c]  \  }}| j                  |      s|| c}}| _        |j                         D ci c]  \  }}| j                  |      r|| c}}| _        g | j                  | j                  j                         D cg c]  \  }}|	 c}}| _        |j                         D cg c]  \  }}|	 c}}| _	        y c c}w c c}}w c c}w c c}w c c}}w c c}}w c c}}w c c}}w )Nts)
rJ  rD  rF   rH  rB  rC  rE  rG  rA  rF  )r=  r   r  rA   rJ   rC   s         r   __init__zSplitInputs.__init__  s   PTUPT!6!6s!;#DPTUTZT`T`TbcTbDAqAd&;&;A&>sCGTbc+/N4C43H3H3MC4N.2Uds$:O:OPS:TsdU/5||~Z~tq!AVAVWXAYad~Z28,,. a.$!QH]H]^_H`A. a[T--[t?Q?Q?W?W?Y0Z?Ytq!?Y0Z[*0,,.9.$!QA.9 VcNUZ a0Z9sF   F F)F FF"'F"F' F'F-F-F3<F9c                    | j                   |j                   k7  ry| j                  |j                  k7  ry| j                  |j                  k7  ry| j                  |j                  k7  ry| j                  |j                  k7  ryy)NFT)rD  rH  rF  rC  rG  )r=  others     r   nontensors_matchzSplitInputs.nontensors_match  st    >>U__,u000u000%"6"66  E$:$::r   N)rP  r@  )r    r!   r"   r   r	   __annotations__r  r
   staticmethodrJ  rN  rQ  r#   r   r   r@  r@    s|    ccICyS>!c38n$c3hL L:r   r@  c                 :     t               fd}|fS )Nc                  6   t        |       }t        	j                        D cg c]  \  }}|dk(  r|   n
t        |       }}}	j                  j                         D ci c]  \  }}||dk(  r
|   n
t        |       }}} |i |S c c}}w c c}}w )NrM  )iter	enumeraterD  nextrH  rF   )tensors_r&  r!  rM  	full_argsrJ   full_kwargsr   r:  inputsr  s          r   new_fnz(partial_apply_nontensors.<locals>.new_fn  s    x.HQRXRbRbHcdHc1ST!Wd7m;Hc	dOUOaOaOgOgOijOitq!qqCx&)T']BOij9,,, ejs   B$ B)r@  )r:  r   r  r]  r\  s   ``` @r   partial_apply_nontensorsr^    s     v&F- 6>r   c                       fdS )Nc                  $   t        | |      \  }}rt        	d      srt        j                  j	                  ||j
                  d      }j                  |j                  |j
                          ||j
                   }r^|	_        |	_	        nOj                  	j                  j                  |              	j                  |j
                   }	j                  } |j                  |j
                   	_        |j                  	_        |S )NtracedF)check_trace)r^  hasattrr4   r.  tracerA  r6  r7  ra  split_inputs
assertTruerQ  r8  r9  )
r\  r  
fn_tensorsre  ra  r;  cache_traced_fnr:  r=  	traced_fns
         r   ri  z#create_traced_fn.<locals>.traced_fn  s     $<B#O 
Lgi&BYY__Z1I1IW\_]F##FLL,2J2JK\556F#)	 )5	& OOI22CCLQR%Y%%|'?'?@F%%F/v//1I1IJ	 ,,	r   r#   )r=  r:  rh  ri  s   ```@r   create_traced_fnrj    s    * r   >
   test_nn_foldtest_norm_frotest_norm_nuctest_nn_unfoldtest_to_sparsetest_nn_ctc_losstest_norm_fro_cputest_to_sparse_dimtest_norm_fro_defaulttest_norm_nuc_batchedc                 r   d| z   }|dk7  r|dz   |z   }|dk(  }t        |f      d   d   }d }t        |      \  }	}
t        |j                        }t        t        |	            }|f|	z   }|f|z   }t        j
                  j                         5  t        | dg| \  }}d d d        ||fS # 1 sw Y   fS xY w)Ntest_nn_rX   _rw   r   r  )rL   r   datar   r4   _jit_internal_disable_emit_hooksr3  )r(  	self_sizer   variant_name
extra_args	test_nameno_gradself_variabler  args_variablekwargs_variableself_tensorargs_tensorf_args_variablef_args_tensorr<  r\  s                    r   (get_nn_functional_compiled_fn_and_inputsr    s    T!IrOl2	i'G ).q1!4MF &2$%7"M?=--.K+M:;K$&6O N[0M				0	0	224[?[	6 
3f 
3fs   B**B6Bilinear)module_nameconstructor_args
input_sizer}  RNNCell)r  r  r  LSTMCellGRUCellMultiheadAttention)      )r   r  r  r  r  )r  r  r  r}  slowTestTransformer)r\   r\   r\   r\   r)   )rV   r\   r\   >
   test_nn_CrossMapLRN2d$test_nn_AdaptiveAvgPool2d_tuple_none$test_nn_AdaptiveAvgPool3d_tuple_none$test_nn_AdaptiveMaxPool2d_tuple_none$test_nn_AdaptiveMaxPool3d_tuple_none$test_nn_Transformer_multilayer_coder/test_nn_TransformerDecoderLayer_gelu_activation/test_nn_TransformerDecoderLayer_relu_activation/test_nn_TransformerEncoderLayer_gelu_activation/test_nn_TransformerEncoderLayer_relu_activationz 
def forward({}):
    return {}
c                       fd}|S )Nc                     t        |       \  }}}dj                  dg|z         }dj                  |      }d| d}t        j                  ||      }g |j	                  d      rdg G fddt
        j                  j                        fd	}	 |	|      }
rj                  |
|        |
|   |
j                  t        _        |
S )
Nr
  r=  zself.submodule(r  is_constant	submodulec                   *     e Zd ZW Z fdZ xZS )>create_script_module.<locals>.script_module.<locals>.TheModulec                 6    t         |             | _        y r   )superrN  r  )r=  	__class__r  	nn_modules    r   rN  zGcreate_script_module.<locals>.script_module.<locals>.TheModule.__init__\  s     "!*,<!=r   )r    r!   r"   __constants__rN  __classcell__)r  r  r  submodule_constantss   @r   	TheModuler  Y  s    /M> >r   r  c                 N            }t        |       |j                  |        |S r   )r  define)r1  moduler  s     r   make_modulez@create_script_module.<locals>.script_module.<locals>.make_module`  s"    [FKMM&!Mr   )r)  r  script_method_templater-  getr4   r.  ScriptModuleassertExportImportModuler7  create_script_moduler9  )r   r  r%  r&  r'  method_argscall_args_strr  r1  r  r  r  r  r  r  r=  s              @@r   script_modulez+create_script_module.<locals>.script_moduleL  s    $3D$9!'ii7 23		'* q1'..{DA ::m$#.-	> 	>		.. 	>	 V$))&':DM*0,,'r   r#   )r=  r  r  r   r  r  s   ```   r   r  r  K  s    !D r   r  )r  c                   t        |      \  }}}t        | |||      }t        j                  dj	                  |      |      }	t
        j                  j                  |	      }
t
        j                  j                  |
j                  j                         t
        j                  j                  |
j                  j                         t
        j                  j                  |
j                  j                  t        |      |       y r+  )r)  r  r,  r-  r  r4   r.  r/  _C_jit_pass_inliner0  r7  _jit_pass_constant_propagation_jit_check_alias_annotationr   )r  r   r  	aten_namer  r%  r&  r'  r  r1  r2  s              r   check_alias_annotationr  p  s     / 5GWgKGV<D##DIIg$6=F		"	"6	*B	HHbmm112	HH++BMM,?,?@	HH(()<)<eGniXr   c                  N    d| v r| d   S d| v r| d   S d| v r| d   j                   S y )Nr  fullnameconstructor)r    )r  s    r   get_nn_module_name_from_kwargsr  z  sF    m$$	v	j!!	&	 m$--- 
!r   c                  R    d| v r| d   }nt        di | }d| v r
| d| d    }d| S )Nr  descrw  rv  r#   )r  )r  r~  s     r   get_nn_mod_test_namer    sK    V:&	2<V<	V$+Qvf~&67Ii[!!r   c                  p    t        di | }|j                  d      }|dk(  r|S |d|j                  d       S )Nrw  r   r#   )r  find)r  r(  indexs      r   get_nn_module_class_from_kwargsr    s=    )3F3DIIcNE{Adiin%%r   c                     t        di |}d|v rd|d   v ry |}d|v r
| d|d    }t        di |}|t        v ry d|v r|d   }nt        t        j
                  |      }dt        |      v ry d|v r |d          }n|j                  dd      }t        j                  }d	|v rJ |d	          }t        |t        j                        r|f}t        d
 |D              rt        j                  }n|d   f}d|v r||d   z   }d|v r
||d   fz   }n*d|v r&t	        j                  |      r|f}| |d          fz   }t        ||      \  }}	t        t!        |            }
t        |
      }|
 t#        d ||g|
 |
 }} ||fS )Nr  evalrw  r  FunctionalModuleconstructor_args_fnr  r#   input_fnc              3   <   K   | ]  }|j                           y wr   )r<   )r   r%   s     r   r   z<try_get_nn_module_compiled_mod_and_inputs.<locals>.<genexpr>  s     7vv  "s   r  r}  target_size	target_fnr   )r  r  EXCLUDE_SCRIPT_MODULESgetattrr4   nnr  r  doubler   r9   allcdouble	is_tensorrL   r   r   r  )r   r  r(  r~  r  r  input_dtypeinputr  r  r  out_varmods                r   )try_get_nn_module_compiled_mod_and_inputsr    s   )3F3DFfVn4I k6&>"23	$.v.I**=)	EHHd+	S^+&86"78:!::&8"= ,,KV"z"$eU\\*HE777--K%' v|,,.00		??5!HE,,.00%1%{%K"M?/>?O'G!j!5dIGW!jZi!jl{!|#D<r   c                  *    t         t        z   t        z   S r   )r   r   additional_module_testsr#   r   r   get_all_nn_module_testsr    s    **-DDDr   )F)rX   )Qtorch.jit.annotationsr   r   torch.nn.functionalr  r  Fr4   
torch.cuda	torch.jittorch.jit._loggingtorch.jit.frontend!torch.testing._internal.common_nnr   r   $torch.testing._internal.common_utilsr   collectionscopyr   typingr	   r
   r   r   mathr   get_default_dtypefloat32LMSr   r   r   
namedtupler$   floatrL   r%   r  zerosrandr7   onesr   r   randintint64emptyrandom_r5   r   r>   r:   longr   viewnn_functional_testsr,  r  r  r  r)  r3  r>  r@  r^  rj  EXCLUDE_SCRIPTr  r  r  r  r  r  r  r  r  r  r  r#   r   r   <module>r     sz   F        L G   ) )  u EMM1 11	5 	 ,[++,@8*M *.uRV^c^i^irv ) tZ1ayAq!9,'Z1a|q!Ql_-Z 1aA!Q1a 23Z !QaAYL1	Z
 !Q1Aq!7Z !Q1aAq!Q?*<=Z !QaAYa01Z Aq!9d#Z Aq!Q<r73Z Aq!Q?D)Z q!QlQAL9Z Aq!9f%Z Aq!97HZ Aq!Q<-TUZ Aq!Q<!:NLstZ  Aq!Q?F+!Z" \U\\RG9+.Axj1I1aQR0ST#Z$ \U\\b!WI;-0<5<<Aq6(3MqRSUV2WX%Z& \U\\r1gYK=/2\U\\q!fXJ<.5QSTVWYZ4[\'Z( 1a)[))Z* 1aA,,+Z, Q1It,-Z. Q1aLAq6)4/Z0 Q1aOi\:1Z2 Q1ItR93Z4 Q1aLAq6)RA5Z6 Q1aOi\2wG7Z8 Aq	62'EF9Z: q!Qi(;Z< 1a)V$=Z> 1aA,	2?Z@ 1aA,'AZB 1aAq/695CZD q!Qi0EZF 1a)YG4GZH 1a)_i8IZJ aAYB(KZL aAYI&MZN QUAE1q5!2'OZP !QKW5QZR !Q-y9SZT q!QiR)UZV q!Qi$+WZX Q1IvYZZ Q1I{I.[Z\ aAY]Z^ aAY	*_Z` aAY aZb aAYY/cZd Aq!9gr73eZf Aq!9gy1gZh q!f')iZj q!f-y9kZl Aq!9fb'2mZn Aq!9b"oZp !QB qZr !QBG,sZt Aq	4!uZv Aq	4W-wZx Aq	Aq%,,/'JyZz aAYB({Z| Aq	2r7+}Z~ aAYB(Z@ Q1ItR1AZB 1vAy"tn-=&>?CZD 1vA~w7G0HIEZF !QaAYAq!(<>@GZH ,%,,l;<zuzz!Q?O>RTVX_`IZJ lell<0:5::a3C\U\\STVWRXEY2[]KZL Aq6	KEKKN	+-?


1-NPTVZ\`c:<MZR Aq!Q<	KEKKN	+-?


1-N	KEKKN	+-?


1-NPT	X;=SZZ Aq!Q<	KEKKN	+-?


1-N	KEKKN	+-?


1-NPT	XEG[Zb Aq6	KEKKN	+-?


1-N	KEKKN	+-?


1-NPT	X')OQcZj Aq6.{u{{1~>@RS]SXS]S]^_S`@a "4ZUZZ]"CTM!#IKkZp Aq6.{u{{1~>@RS]SXS]S]^_S`@a.{u{{1~>dN#%KMqZv Aq6.{u{{1~>@RS]SXS]S]^_S`@a $1;=wZ| Aq6.{u{{1~>@RS]SXS]S]^_S`@a.{u{{1~>@RS]SXS]S]^_S`@achl(*PR}ZB Aq6.{u{{1~>@RS]SXS]S]^_S`@a "4ZUZZ]"CUN"$JLCZH Aq6.{u{{1~>@RS]SXS]S]^_S`@a.{u{{1~>eO$&LNIZN q!Qi"4[U[[^"DFXYcY^YcYcdeYfFg!hjOZP Aq!Q<1# "@ABDQZT Aq!Q<1#'9*%**Q-'H!JL^ "@ABDUZX Aq!Q<1#t-?


1-N!PRb "@ABDYZ\ Aq!Q<1#'9*%**Q-'H"4ZUZZ]"C"EF\RSU]Zb Aq!9q*%**Q-13cZd Q1Iu.eZf {u{{1a0a8<5<<	;R:TVXZgZh Aq)JEJJq!,<+>@iZj Aq)JEJJq!,<dD+I6RkZl }q}}[U[[B/3iaiiAr@RTU6V5XZmZn q!f}u}}QEKKHJLoZp (A0F0Fq0I/LNqZr 1v 2:5::a3C DFHsZt Aq6.zuzz!Q/?@BDuZv A+JEJJq!,<=?AwZx !Q,ZUZZ1-=>@ByZz 1vAq!14kB{Z| Aq6ZUZZ1-0+>}Z~ A*%**Q*-{;Z@ !Q:5::a+.<AZB QDA4!,0CZD aV&8Aq9I&J%LNEZF !Q"4ZUZZ15E"F!HJGZH #QF-?


1a@P-Q,SUIZJ q!f1v/A*%**Q./Q&RTKZL +MZN /OZP Q1I


Aq!Q< 8:<QZR LAq6)%SZT 1a&Aq6)-UZV q!fbWZX 1a&Aq6)-YZZ QFaVaV$46[Z\ 1a)R!]Z^ 1a|q!f'_Z` 1a&1a&!13aZb Q1aL#5jejjAq!6L#M"OQcZd 1vub41\_j^k*lmeZf 1v{FT;fithu4vwgZh |u||->,?@<5<<QZP[C\B^`iZj 1a&#5memmAuTYT_T_6`#a#$b*<[U[[^*L#N PkZn [U[[A.668;MjejjYZ\]N^;_;MkekkZ[]^N_;`;b doZr [U[[A.668	JEJJq!,	-	KEKK1-	.dF	DESUsZx Aq!$003::<KKMemmAq1a&

3ZUZZauzz5ZemmAq1$ejj134yZ~ Q1a(*lCZ@ Q1a($<AZB KEKK1%**1aA6lKCZD KEKK1a+Z9PQEZF KEKK1a+T3IJGZH KEKK1%**1aA6iHIZJ KEKK1a+Z9MNKZL KEKK1a+T3FGMZN KEKK1%**1aA6mLOZP KEKK1a+Z9QRQZR KEKK1a+T3JKSZT KEKK1%**1aA6lKUZV KEKK1a+Z9PQWZX KEKK1a+T3IJYZZ KEKK1%**1a3T<H[Z\ KEKK1a(*6MN]Z^ KEKK1a($0FG_Z` KEKK1%**1a3T9EaZb KEKK1a(*6JKcZd KEKK1a($0CDeZf KEKK1%**1a3T;GgZh KEKK1a(*6LMiZj KEKK1a($0EFkZl KEKK1aA.
<STmZn KEKK1aA.6LMoZp KEKK1a(--aAq!<dINqZr KEKK1aA.
<PQsZt KEKK1aA.6IJuZv KEKK1a(--aAq!<dNSwZx KEKK1aA.
<UVyZz KEKK1aA.6NO{Z| KEKK1%**1aA68Y,.}Z@ KEKK1a+-N68AZD KEKK1a+-P8:EZH KEKK1a+-O79IZL KEKK1a+-O79MZP KEKK1a+-N68QZT KEKK1a(*L79UZX KEKK1a(*K68YZ\ KEKK1a(*K68]Z` KEKK1a(*J57aZd KEKK1aA.0R79eZh KEKK1aA.0Q68iZl KEKK1aA.0T9;mZp KEKK1aA.0S8:qZ x
*'."
# #P	2.8 "1I!f1vi	 !F!f "F!f !F!f ,$""u{{2q#.B30GH %+"u{{1a+-;$ L   
#J OW Y."&8vEr   