/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__/lbfgs.cpython-36.pyc (8802B)
3 EgXC@sHddlZddlmZddlmZdddZdd d ZGd ddeZdS)N)reduce) Optimizerc Cs|dk r|\}}n||kr"||fn||f\}}||d||||} | d||} | dkr| j} ||kr||||| | ||d| } n(||||| | ||d| } tt| ||S||dSdS)Nrg@)sqrtminmax) x1f1Zg1Zx2f2Zg2boundsZ xmin_boundZ xmax_boundZd1Z d2_squareZd2Zmin_posr=/usr/local/lib64/python3.6/site-packages/torch/optim/lbfgs.py_cubic_interpolates  *(r-C6??& .>c ! Cs&|jj} |jtjd}||||\} } d}| j|}d|||f\}}}}d}d}x8|| kr| ||||ks|dkr| |kr||g}|| g}|| jtjdg}||g}Pt|| |kr|g}| g}| g}d}P|dkr||g}|| g}|| jtjdg}||g}P|d||}|d}|}t||||| |||fd}|}| }| jtjd}|}||||\} } |d7}| j|}|d7}qXW|| krd|g}|| g}|| g}d}|d|d krd nd \}}x*| r|| krt|d|d| | kr Pt|d|d|d|d|d|d}d t|t|} tt|||t|| kr|s|t|ks|t|krt|t|t|t|krt|| }n t|| }d}nd}nd}||||\} } |d7}| j|}|d7}| ||||ks$| ||krn|||<| ||<| jtjd||<|||<|d|dkrdd nd\}}nt|| |krd}nJ|||||dkr||||<||||<||||<||||<|||<| ||<| jtjd||<|||<qW||}||} ||} | | ||fS)N) memory_formatrrFTg{Gz? )r g?)rr)rr)rr)rr)absr clonetorchcontiguous_formatdotrr)!obj_funcxtdfggtdc1c2tolerance_changeZmax_lsZd_normZf_newZg_new ls_func_evalsZgtd_newZt_prevZf_prevZg_prevZgtd_prevdoneZls_iterZbracketZ bracket_fZ bracket_gZ bracket_gtdZmin_stepZmax_steptmpZinsuf_progressZlow_posZhigh_posZepsrrr _strong_wolfe"s  $       ""  $     r*csbeZdZdZdfdd Zd d Zd d ZddZddZddZ ddZ e j ddZ ZS)LBFGSaImplements L-BFGS algorithm, heavily inspired by `minFunc `_. .. warning:: This optimizer doesn't support per-parameter options and parameter groups (there can be only one). .. warning:: Right now all parameters have to be on a single device. This will be improved in the future. .. note:: This is a very memory intensive optimizer (it requires additional ``param_bytes * (history_size + 1)`` bytes). If it doesn't fit in memory try reducing the history size, or use a different algorithm. Args: lr (float): learning rate (default: 1) max_iter (int): maximal number of iterations per optimization step (default: 20) max_eval (int): maximal number of function evaluations per optimization step (default: max_iter * 1.25). tolerance_grad (float): termination tolerance on first order optimality (default: 1e-5). tolerance_change (float): termination tolerance on function value/parameter changes (default: 1e-9). history_size (int): update history size (default: 100). line_search_fn (str): either 'strong_wolfe' or None (default: None). rNHz>& .>dc sl|dkr|dd}t|||||||d} tt|j|| t|jdkrRtd|jdd|_d|_dS)N)lrmax_itermax_evaltolerance_gradr& history_sizeline_search_fnrz>LBFGS doesn't support per-parameter options (parameter groups)rparams) dictsuperr+__init__len param_groups ValueError_params _numel_cache) selfr8r2r3r4r5r&r6r7defaults) __class__rrr;s  zLBFGS.__init__cCs$|jdkrtdd|jd|_|jS)NcSs ||jS)N)numel)totalprrrszLBFGS._numel..r)r@rr?)rArrr_numels z LBFGS._numelcCsng}x\|jD]R}|jdkr.|j|jj}n&|jjrH|jjjd}n |jjd}|j|q Wt j |dS)Nrrrr) r?ZgradnewrDZzero_Z is_sparseZto_denseviewappendrcat)rAZviewsrFrJrrr_gather_flat_grads   zLBFGS._gather_flat_gradcCsXd}x>|jD]4}|j}|j||||j||d||7}q W||jksTtdS)Nr)alpha)r?rDadd_Zview_asrHAssertionError)rAZ step_sizeupdateoffsetrFrDrrr _add_grads    zLBFGS._add_gradcCsdd|jDS)NcSsg|]}|jtjdqS))r)rrr).0rFrrr sz&LBFGS._clone_param..)r?)rArrr _clone_param szLBFGS._clone_paramcCs(x"t|j|D]\}}|j|qWdS)N)zipr?copy_)rAZ params_datarFZpdatarrr _set_paramszLBFGS._set_paramcCs0|j||t|}|j}|j|||fS)N)rSfloatrMrY)rAclosurerrr loss flat_gradrrr_directional_evaluates    zLBFGS._directional_evaluatec& stjdksttjjd}|d}|d}|d}|d}|d}|d}|d } jjd} | jd d| jd d} t| } d} | d d7<j }|j j |k}|r| S| j d }| j d }| j d}| j d}| j d}| j d}| j d}| j d}d}x>||kr^|d7}| d d7<| d dkrn|j }g}g}g}d}nV|j|}|j|}|j|}|dkrt|| kr|jd|jd|jd|j||j||jd|||j|}t|}d| krdg| | d<| d}|j }xLt|dddD]8}||j|||||<|j|||| dq4Wtj||}} xBt|D]6}||j| ||}!| j|||||!dqW|dkr|jtjd}n |j|| }| d dkrtdd|j j|}n|}|j|}"|"| kr2Pd}#|dk r|dkrTtdn2j}$fdd}%t|%|$||| ||"\} }}}#j|||j j |k}nPj||||krtjt} WdQRXj }|j j |k}d}#| |#7} | d |#7<||krP| |kr$P|r,P|j|j j |krFPt | ||kr"Pq"W|| d <|| d <|| d<|| d<|| d<|| d<|| d<|| d<| S) zPerforms a single optimization step. Args: closure (callable): A closure that reevaluates the model and returns the loss. rrr2r3r4r5r&r7r6Z func_evalsn_iterr rold_dirsold_stpsroH_diagprev_flat_grad prev_lossg|=g?alN)rN)rZ strong_wolfez only 'strong_wolfe' is supportedcsj|||S)N)r^)rrr )r[rArrrszLBFGS.step..obj_funcrr)r<r=rPrZ enable_gradstater? setdefaultrZrMrr getnegsubmulrpoprKrangerOrrrXrsum RuntimeErrorrVr*rS)&rAr[groupr2r3r4r5r&r7r6rgZ orig_lossr\Z current_evalsr]Zopt_condr rr`rarbrcrdrer_ysZysZnum_oldrfqirZbe_ir#r'Zx_initrr)r[rArsteps                                    z LBFGS.step)rr,Nr-r.r/N)__name__ __module__ __qualname____doc__r;rHrMrSrVrYr^rZno_gradrw __classcell__rr)rCrr+s  r+)N)rrrr)r functoolsrZ optimizerrrr*r+rrrrs   #