L i\ ddlmZddlmZmZddlmZmZmZm Z m Z ddl m Z ddl Z ddlmZddlmZddlmZerdd lmZdd lmZdd lmZd gZd ede dfdZd ede dfdZddZd dZd!d edee ede!fdZ" d"dee jFdee e$e jJfde!de&e&e jFfdZ'e deZ( d"de(dee e$e jJfde!de&e(fdZ)y)#) OrderedDict)IteratorSequence)castOptional TYPE_CHECKINGTypeVarUnion)TypeIsN)_get_device_index)Module)comm) ScriptMethod) ScriptModule) EnabledProxy replicatemodulereturnrcJddl}t||jjSNr) torch.jit isinstancejitrrtorchs a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/nn/parallel/replicate.py_is_script_modulers feii44 55rcJddl}t||jjSr)rr_Crrs r_is_script_methodr!s fehh33 44rc>ddl}|jjSr)rrrrs r_init_script_moduler$!s 99 ! ! ##rcJddl}|jjjSr)torch.jit._stater_state_enabledr#s r_is_jit_enabledr)'s 99   $ $$rmemocFdtdttfd}tsy| t}|j |t |r/|j ||td||DS|jD]}||vrt||ryy)Nrrc<|j}t||SN)modulesnext)rgens rdescendant_modulesz0_replicatable_module..descendant_modules6snn S  rTc32K|]}t|ywr-)r).0 descendants r z'_replicatable_module..Ds .8 j ) sF) r rr)setaddrupdateallchildren_replicatable_module)rr*r1childs rr;r;4s6hv.>   |u HHV  &v./ r?rA tensor_copiesis r_broadcast_coalesced_reshaperISs 7 ''99 wg>Mq#m"4c'lCa!c'l"23  I s!A>T)boundnetworkc jt|s td|sgS|Dcgc]}t|d}}t|}t |j }t |Dcic]\}}|| }}}t|||} t |j} g} g} | D]3} | jr|s| j| #| j| 5t | D cic]\}} | | }}} t | D cic]\}} | | }}} t| ||}t| |d}t |j}|Dcgc]}g}}i}t |D]M\}}|||<t|D]5}|j}t|_||j|7Ot |D]\}}|j j#D]_\}}|(t|D]}|||}d|j |<0||}t|D]}|||}t%|||||a|j&j#D]p\}}|(t|D]}|||}d|j&|<0||}t|D].}|||}| ||}t%|||||j|<0r|j(j#D]w\}} | (t|D]}|||}d|j(|<0| jr |s|}|| } n|}|| } t|D]}|||}t%||||| yt|Dcgc]}t+t,||dc}Scc}wcc}}wcc} }wcc} }wcc}wcc}w)NzJCannot replicate network where python modules are children of ScriptModuleT)r?r)r; RuntimeErrorr rDlist parameters enumeraterIbuffers requires_gradappendr.rF_replicate_for_data_parallelr_former_parameters_modulesitemssetattr _parameters_buffersrrJ)!rLr>r?x num_replicasparamsidxparam param_indices param_copiesrR buffers_rgbuffers_not_rgbufbuffer_indices_rgbuffer_indices_not_rgbuffer_copies_rgbuffer_copies_not_rgr._ module_copiesmodule_indicesrHrjreplicakeyr< module_idx param_idx param_copy buffer_copies buffer_idxs! rrrksU  ( X    3:;a D);G;wt Gs#N& N& N N% N+4N0)rr)rrr-)F)* collectionsrcollections.abcrrtypingrrrr r typing_extensionsr r torch._utilsr torch.nn.modulesr torch.nn.parallelrtorch._Crrrr&r__all__robjectr!r$r)r6boolr;TensorintdevicerOrIrJrrrrsK#.@@$ *#"%&- -6f6)?6 5f5)?5 $ %xF /DPTD ell # eC-. /  $u||  * Cv `G `G eC-. /`G `G !W `Gr