/usr/local/lib64/python3.6/site-packages/torch/optim/__pycache__
NameSizeModeActions
adadelta.cpython-36.pyc48290644editdlrm
adagrad.cpython-36.pyc47670644editdlrm
adam.cpython-36.pyc62500644editdlrm
adamax.cpython-36.pyc48690644editdlrm
adamw.cpython-36.pyc62580644editdlrm
asgd.cpython-36.pyc28480644editdlrm
lbfgs.cpython-36.pyc88020644editdlrm
lr_scheduler.cpython-36.pyc637920644editdlrm
nadam.cpython-36.pyc57270644editdlrm
optimizer.cpython-36.pyc118270644editdlrm
radam.cpython-36.pyc57120644editdlrm
rmsprop.cpython-36.pyc65430644editdlrm
rprop.cpython-36.pyc51820644editdlrm
sgd.cpython-36.pyc62670644editdlrm
sparse_adam.cpython-36.pyc33290644editdlrm
swa_utils.cpython-36.pyc113700644editdlrm
_functional.cpython-36.pyc104070644editdlrm
__init__.cpython-36.pyc10490644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/optim/__pycache__/rmsprop.cpython-36.pyc (6543B)
3 Eg@s4ddlZddlmZddlmZGdddeZdS)N) _functional) Optimizercs@eZdZdZdfdd Zfd d Zejdd d ZZ S)RMSpropaImplements RMSprop algorithm. .. math:: \begin{aligned} &\rule{110mm}{0.4pt} \\ &\textbf{input} : \alpha \text{ (alpha)},\: \gamma \text{ (lr)}, \: \theta_0 \text{ (params)}, \: f(\theta) \text{ (objective)} \\ &\hspace{13mm} \lambda \text{ (weight decay)},\: \mu \text{ (momentum)},\: centered\\ &\textbf{initialize} : v_0 \leftarrow 0 \text{ (square average)}, \: \textbf{b}_0 \leftarrow 0 \text{ (buffer)}, \: g^{ave}_0 \leftarrow 0 \\[-1.ex] &\rule{110mm}{0.4pt} \\ &\textbf{for} \: t=1 \: \textbf{to} \: \ldots \: \textbf{do} \\ &\hspace{5mm}g_t \leftarrow \nabla_{\theta} f_t (\theta_{t-1}) \\ &\hspace{5mm}if \: \lambda \neq 0 \\ &\hspace{10mm} g_t \leftarrow g_t + \lambda \theta_{t-1} \\ &\hspace{5mm}v_t \leftarrow \alpha v_{t-1} + (1 - \alpha) g^2_t \hspace{8mm} \\ &\hspace{5mm} \tilde{v_t} \leftarrow v_t \\ &\hspace{5mm}if \: centered \\ &\hspace{10mm} g^{ave}_t \leftarrow g^{ave}_{t-1} \alpha + (1-\alpha) g_t \\ &\hspace{10mm} \tilde{v_t} \leftarrow \tilde{v_t} - \big(g^{ave}_{t} \big)^2 \\ &\hspace{5mm}if \: \mu > 0 \\ &\hspace{10mm} \textbf{b}_t\leftarrow \mu \textbf{b}_{t-1} + g_t/ \big(\sqrt{\tilde{v_t}} + \epsilon \big) \\ &\hspace{10mm} \theta_t \leftarrow \theta_{t-1} - \gamma \textbf{b}_t \\ &\hspace{5mm} else \\ &\hspace{10mm}\theta_t \leftarrow \theta_{t-1} - \gamma g_t/ \big(\sqrt{\tilde{v_t}} + \epsilon \big) \hspace{3mm} \\ &\rule{110mm}{0.4pt} \\[-1.ex] &\bf{return} \: \theta_t \\[-1.ex] &\rule{110mm}{0.4pt} \\[-1.ex] \end{aligned} For further details regarding the algorithm we refer to `lecture notes `_ by G. Hinton. and centered version `Generating Sequences With Recurrent Neural Networks `_. The implementation here takes the square root of the gradient average before adding epsilon (note that TensorFlow interchanges these two operations). The effective learning rate is thus :math:`\gamma/(\sqrt{v} + \epsilon)` where :math:`\gamma` is the scheduled learning rate and :math:`v` is the weighted moving average of the squared gradient. Args: params (iterable): iterable of parameters to optimize or dicts defining parameter groups lr (float, optional): learning rate (default: 1e-2) momentum (float, optional): momentum factor (default: 0) alpha (float, optional): smoothing constant (default: 0.99) eps (float, optional): term added to the denominator to improve numerical stability (default: 1e-8) centered (bool, optional) : if ``True``, compute the centered RMSProp, the gradient is normalized by an estimation of its variance weight_decay (float, optional): weight decay (L2 penalty) (default: 0) {Gz?Gz?:0yE>rFc sd|kstdj|d|ks,tdj|d|ksBtdj|d|ksXtdj|d|ksntdj|t||||||d}tt|j||dS)NgzInvalid learning rate: {}zInvalid epsilon value: {}zInvalid momentum value: {}zInvalid weight_decay value: {}zInvalid alpha value: {})lrmomentumalphaepscentered weight_decay) ValueErrorformatdictsuperr__init__) selfparamsr r r rr r defaults) __class__?/usr/local/lib64/python3.6/site-packages/torch/optim/rmsprop.pyr@szRMSprop.__init__cs<tt|j|x&|jD]}|jdd|jddqWdS)Nr rr F)rr __setstate__ param_groups setdefault)rstategroup)rrrrOs  zRMSprop.__setstate__Nc Csd}|dk r&tj |}WdQRXxb|jD]V}g}g}g}g}g}x|dD]} | jdkrfqV|j| | jjrtd|j| j|j| } t| dkrd| d<tj | tj d| d<|ddkrtj | tj d| d <|d rtj | tj d| d <|j| d|ddkr$|j| d |d r<|j| d | dd 7<qVWt j ||||||d |d|d|d|d|d d q0W|S)zPerforms a single optimization step. Args: closure (callable, optional): A closure that reevaluates the model and returns the loss. Nrz)RMSprop does not support sparse gradientsrstep)Z memory_formatZ square_avgr Zmomentum_bufferr Zgrad_avgrr r r r)r r r rr r ) torchZ enable_gradrZgradappendZ is_sparse RuntimeErrorrlenZ zeros_likeZpreserve_formatFZrmsprop) rZclosureZlossrZparams_with_gradZgradsZ square_avgsZ grad_avgsZmomentum_buffer_listprrrrrUsV        z RMSprop.step)rrrrrF)N) __name__ __module__ __qualname____doc__rrr Zno_gradr __classcell__rr)rrrs 8 r)r rr$Z optimizerrrrrrrs