L i dZddlZddlmZddlmZddlmZmZddlmZddlmZdd l m Z dd l m Z dd l m Z dd l m Z dd l m Z ddlmZddlmZdeedeedeedeedeedededededefdZy)zFunctional interface.N)Tensor)adadelta) _make_sparseadagrad)adam)adamax)adamw)asgd)nadam)radam)rmsprop)rprop)sgdparamsgradsexp_avgs exp_avg_sqs state_stepsepsbeta1beta2lrmaximizec t|D]\} } || | sn jjj} | j dk(rWj || } || }|| }fd}| j j}| j|jd|z }| j|||j j}| jdj|jd|z }|j|||j|}|j||jj|}~~d||zz }d||zz }|tj|z|z }| j|| |j|zy)z{Functional API that performs Sparse Adam algorithm computation. See :class:`~torch.optim.SparseAdam` for details. rcj}jdk(s|jdk(r|jS||S)Nr)newdim resize_as_)values constructorgrad grad_indicessizes ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/optim/_functional.py make_sparsez sparse_adam..make_sparse8sL((K!Q&&**,!*;"}//55|VT: :rN) enumeratecoalesce_indices_valuesnumelr$ sparse_masksubmul_add_powsub_sqrt_mathsqrtdiv_)rrrrrrrrrriparam grad_valuesexp_avg exp_avg_sqstepr&old_exp_avg_valuesexp_avg_update_valuesold_exp_avg_sq_valuesexp_avg_sq_update_valuesnumerdenombias_correction1bias_correction2 step_sizer"r#r$s @@@r% sparse_adamrGs"f%+@5Qx#t$}}}} lln    ! # yy{1+ ^ 1~ ;%006>>@ +0B C H HU S [!678 * 6 6t < D D F OOA  # #$9 : ? ?E J !  $<=>&**+=> %%&;<(..055c: !#;ud{?ud{?#3447GG  ; zEJJu,==>?W+@r')__doc__r5torchrrrrrr r r r r rrrlistintfloatboolrGr'r%rOs * <@ L<@ <<@6l<@f <@ c <@ <@ <@ <@ <@<@r'