From 30e2f4e81e17579dcef4c779140f6ad381374af9 Mon Sep 17 00:00:00 2001 From: Yi-Xuan Xu Date: Sun, 6 Jun 2021 09:01:23 +0800 Subject: [PATCH] doc: update sphinx theme (#78) * update index.rst * update rst * Update index.rst * Update parameters.rst * Update index.rst --- docs/_images/soft_gradient_boosting.png | Bin 71050 -> 0 bytes docs/conf.py | 15 +---- docs/experiment.rst | 4 +- docs/index.rst | 71 ++++++++++++++---------- docs/introduction.rst | 12 ---- docs/parameters.rst | 19 ------- docs/requirements.txt | 3 +- 7 files changed, 48 insertions(+), 76 deletions(-) delete mode 100644 docs/_images/soft_gradient_boosting.png diff --git a/docs/_images/soft_gradient_boosting.png b/docs/_images/soft_gradient_boosting.png deleted file mode 100644 index 3854d73ddb8e0d0d87d655da3f2dce48bf16b993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71050 zcmb@ubySpJ^e?Q^BHcB>kkX)ZhqQ!rHwYq~LrHhH5;BTNNOzaa(B0kL-S30n-@SL; zKi;+8Ki>HRW<8wqoOAZs`Pq9DuA(G^@sjlAvuDpRQm`U9i=$RcpVzfKD#d8nz+_ z+-OOO7lZZ1vELygN|i{w2*Ra`3wkSiXu&(XyEowHd$^IAkaVmL`MGIr6`Kv+!lYD zrRaeTy#HAOv8+vFRWoPW*4F+$hFyIq3N9$gplaR!Pdi@u;8X=dc+AMihu6%^YGemA z&!KqWrzJ`LP3G5@NmYI*H&1PB-1%a=FluqWJw*L3_@1jQN9GsSVTvlZPn&rN=d!Af z&T9<~jh$*J6g+hrD2D|GL;H>#FoEA-E67pZ{>jux=E(HC{dvC1s}836wW+fABPt7d zAvMOt=n0_p^>wCYRXsgsZf@>^8kCFw_D{063>;&PV{81l%IHr@bb~;V2!VWSa}1ZK zT?Z;Zq*Ekad$J&bL|9nZ<~NQVCq9~FG{-A6G#p!5$WjVGt`D#v6dauRK#u8U#b$pA zPoGIy?%00N9nc4ICZvW$Ri57|H1R-*MsnEqXBX&_LEjVR;+*hTP&x8DVKG zEHQgbTG643A3uLe(Fvb@sD2_4DJC`@80-}0$F|78%v-JPLz?u9WX?T88tmdC;a0W&d6ZCw-PA#s9@ljE;;ICo@N zkT3ZwXePjfMLQp<8B_*18RUMli5|&p)EzOa~o|w=GaSox|+u9AR)|mw>=<%%?jx{`UZQ z7N#HiwAjCo69v7{(<9&mcm4PNe~%~sQQ_a?|F^-7n%U0)nOLWch0)NE$y>CCIi+*p z>IJ)8Ui2zcda|!fB|s&vJ4wvUA8=ep<`x*-A6*mo<`ym5bnt+iPULtxsT6;egJn~O z>m6!3cbP6z?@P(7TiC9b#rdy^rPTFK7C#LwOAZKIQNjUCpd+7GDlz)gSBu;NC;=u>PMAx`+bj;m65>!4CW{McTMKu zza|VlwNFZ#38|Af@Ha&Icd9e4DuZ);t^BM;y9#M~Q{TWjUbJ?`-^E2RQNAPFW6J`RFaq6D` zx7B>!NnQn`7E$xXlz9rmOpK>LA^p#vvYLH$s>kX{HtABF`q}R#D*JxSz$f47_Ma^=6wvU!3%wkp{bd%K+IyHaZL_TW#5GFo zpeKn-a%BKbe@~!L(O!z@Pb|p&(aZ37|E+3dmiPO`q2LtFqp!0OeAiOBDCO2ZgPl^B zPv7_M$ctap{^>+)|D9-eVRiv@LR?txeV$tQv#NsK{IN;dHvY4Tvu9&ju}-t+rOo!< zg~h#4IKTkH|J_>oK`_B>?w?TxJn59)l=;k)jgUa_1AH~^S>5tu6DvcXUEIx%sZPtE z_Y3oLq@Gj&2~^4dky%x#vF_pf%t{+}Dp5N<$G?js46OvN31|9Q%GP+zjR^2HH|9V2 z{Ki2qn0EGmG>jDCh#aPEaBy&2w6HM1JtH0elqSNf685Sae8!FtO&7#Nnle=t6)M9L zt%!(-F;);DYXAo%07Apx8lPDBM+B*-bSA;hwb09rYFPEd2Pn_nWYd!hVC4Q!uePF9 z>^_b9uA2P$gE}Af$dl12FXwvA%9^~gVp^5`e<>>9tV^YYMClVl_=;}dc~NjF2nYy1 z=;-9zx&Bi(A7BYd0O6>cA>H_e%Klu&A3gJ46>hzhb5qyQkbD0=T3t)45SGya=qg4Z z7CC^(Ql9vaJ z?Ce?{I%juJIxh)SGR`0dd$kwhqINIO<&E46uOKsjCugYb8MI}NMvL_>P0!6H%jwF7(VbB_`0`Gu5r&?%XsM2& z&r#3P=|X}$iPzXW8|_GWkFltvlNrYkn*35PBZhl_s0d}XhAe6oEgj2yklFJV$|`cS$Z6siPSB9zp2f&O1>)2aM4!+e!Jm`8uJx4WxG1~MBR z+$`AQ^~F3O6E#{~X>{A0qUK%nu4sI?*`+RlH4={gdapLy8IET$SL?`S+KD<&BcXg1 zju>D#jCko-h=HqX^d@pe#x~%usTEGI= zIf-R9+OizRYTeeKx;mYQ<5)j<_T!zE=V~+?%Zt1@0ufolq`VBSd{#pM=c?O8 zv2yEnw)%78c%fD=b4eo<;#6eRBJwBOdgP~EK@BYFwVFB>w&ESX-@{$p0%%#!11fI6 z+>KhXK)o!7QxPOv=NhiJGoMQ26ci%mZH+(K+beHvj>OfrI;5JLfQPyh847>4s>)F0+T|%_ z7T|)v{FL=zk2~rNJ$9_jqPFaglS-uNrj^63qx@t99<*4wQa3W=W_Z%ubpO;4dM<7N zN%b3=#1@!(0{*aJq9T}P=3cvr6S^Ne;Viib_B=jlI4pqGwpjL)x>7cAJKS!3v!_23 zJ^1tjMJAJrUOWT6 z#iGor%}+djqT6V9e_Wgf6X02BmLhElZ%kQHSa;9d@}lQrmu@uc$HlRPrO~}@HzKm% zlGD@sCa<|=rmLrCu|HGQHo05|vJ3FBZ#vh+ZAtDlVeA=}p=5=TJ4a=>%~;!rVD=5? z^k)icHD5Lz<~z4KqhNv5H=~^;SKd9o(i9uS8N&ElP{5Qdgl2z5>DY<$!N7oGE))Z1 zDjGCMZJP2dJOv+385-0=e^+-j$uL4jJG}a%iC#5-;9EkmIj&ezv;N~Fef!=a!|-Y% zKfSIKSMn;?bYdhUrN+k(-jPLlx*ls%*^9L zWU_XO*&+s(gITO*uow&_zK9@XyXYhGl+S-1Nan!Lop$o`3J7#n@?nRkneGemta{b( zo@8c=-HAWtKDTaF%kIhV?OX2MI-7G9QZ3h-ILT4u;y=dG254hY&&7~(%b)9Vda=#y z#)q{%ChL^brF?`j%v{NDR&9r+QbGI5cMk=H!avRt?N535kq!F}cnDXT-e-QjkM8s$ z-`|v@KbBi_c?v743HKvhugog!uDW2@B9C9DciUql&vk|e&?f%q23qPe~80JeKcUW&5}NBdGsA|*5sogo&0DX3li4-Ec?;;8^80fv5AQg zMUaht#CR=bI0i;{{H$HW`~Fq``;JhoRFjU7d}MyZl1IxQpVMdwy0MFpD{RJ@T!k)7 z(DdhEpR4g`u2F^EkNlDf%*k|4H~JN>E26StT?TgMJC{+2HbtGrP$(T5c1ILi$I<30 zoeY%D-IUG;cYB*)zs?*I`4_@=XC;5eGjr$<$9(d;dpmbLO;R#YjgY{NZFq&xe=aHv z@_xT0!NcoX3)bQF-IM8{xfnatuMo>wk+|{(B_O4LLd@G{% zxYaEIS-*9#v{-6%H{TM}Mor6bu^M*sKEd+zC=q^5-CHQ4U7Q2Kb z9bTft&TXl~a(kRS3katBi+d)5-mms^G$0vpiDmkEDu9vR2{ucq4?X^#yl51Y%}Bc?aEXn`L=kFNx9Y%eOLZ-sY)9E;3MP1-{k zFFCxO{zees-1cAmeKKrS+iCfsuLH8a=rHs}qs4yI^Dw0~3=q;~$Kznu3d4OeX1T15 zc_ExRId~*DBDf@7Xvo9D`tCUH@>~d7YD0Y7c!tF6+NG^$b>{VM&; zh)WcAnOD2Ier0_VbH5zB{b8^^5gVP2R}!CQOWkiSv%_UTEl*2=y~`aglnQTFH%i@d z#y6^dWW$qFG+*H^%Tlg3`MPu5%@eY_vtthU6>>hB;OzI)@%iQ`89o=&+gVB~T;26j zxX!~6+wI$0cpyZzNNTg(q8FSc8GsU=bu{?bcdVqySifv1H`Oo#Lav!TB56PL1E)#m z3~_P_N+$~ZS{@{^|3N2-yS*%P?GJd$5#4;`fBEhZ^^A-FB#5faU+y7pu64ZHmY&A} z>3KJr*ddz1cas z_pZDNd5(55K|}LSbaU6e*T(IxiDCA~>xEB!5EE)uUaNtO-@?semqT1+3xuEHdRLq! zjVJPOGg{Rs*sABM6>(^##Y|T;**I$oE^i?JSB?y6hIcL!h>4Y?iIl%vmNo6mH19`l zqg=)4#ZT}USm~gsU4~@K-57J=$XE<5QWY^vraJ$C_wN2h`T43Hd}mW0O+^-!WjS3z z?<#|kI~&Fmn&h(v%B0@HuiOLW6rK#k_WpiyLIN(g$!i{3p~%QcRv`s2^o(|Plu0*$ zZsFcMfwn8T*d?ITgR-Veqi{%pj)+-vJK4UJ8Ydtq48&xn=xy8)G+~K`lgY?=@yZ03 z*6#^B_;qRzkn=O(DKgQN;F0&HvMXOZpGDwI#kCIg>Vo|4j(_P~AFZ==pywT3W8zXU zwFgAQvz}CKPos8+L*GV4crq25a?}!GH&$PN$nDl~YGPpBpsj8V z*OiX6XPmQEJVGI8*q6(3gis+%MHi~>oXy2nDGh}bmUvOXqkK*9pUmv@M~0qyvB9Gs0R$ENieVukx& zucwZi&Fy5-e5toAZweL^5EzTIv6UtU1$L`DipXaCz%20c3$m|gi@04TTHwP9^C}HR zQ3Z`4#bue}3-iYv~m?a=Sh>w^J){9GEZeHPOmM_w1;ca2@Co0&ixaKF;=nD*!8 zl$BEVU_BYuHKAcmVXj?PTvn2RTUo>J?x>J(+u7>(=h$s22SeL5u|glt5&3VnerT{` zE6Up!<*g8|%X@GIHHppvtPK@1$?#Uk((zmgXHZXAowmw;U&|rx?_b2PDbN;&-xpVc zj*L%OzZ5p{siUaX7+9|rP-gKB?-U|BRgN(PL44-2&FZ_JbB*sCGEG!;} zD9(}0KB~=FGNt+Y!BDftz^h%t6 zzjAbJhvEGEyzK>bqk?gz$!ivTAfydrj9=zn7MA2NLfP298VVJ`=PDDaCNlC?t+t(p zLPDuHlva@DwD#?L3rx17Gs{#asbRa5=R@R6qGjZ*_}1j5eUz1$D5dui!Xe8)RXbnG~xW7Qo+@+Kf0D@n3Gs|b%u;Mk;yGVvUc11B7ct>GW5DSCGC zM)x~fBQrCk=N^hHE*t4qJ)WDH3>Fp^Ob#^KWPx>#?+A)@l%%FRpWp_I07o|Lp(fF@ zpZCNs0zLP#JU2+VIc>lkXY0^Nwh!G{MM7baH#`QRJQJC!*%OIb2~|&vp;5F_`rSER z&rCKGR>`11oLLMTwb|;{aJlu7#C7daCm>Vu9_*O(d|`~UrgTCfm=py}-<}W&Ri<_Z zsqxb<$`5cpXdzw-v1 zKuez*orq1nNf7&sE7gR-VN?@8aZos%$r3F#D+@FV0!3*65Q6n`lW6ISR~sF->+F6c z?jk~pZa4YLKJwDhqy&4%IlBu}F3L9aB2JNjx6;46pQONNJop^KN5Q%IA^OR z#(}4HFxq&%`E`)>!Q}{MECLr(X6rJdH#kp_f;rkMHt|@4k;gL9_2T2b(RByq1NNya zk-me!KA>XSJVjJ4i;IfX&mC6H^T>A+$exZ9mF0Q!>ziEy<-<`Z&LB-17;fk`ZLuQ~ zz!Xq4z_MEw)W?DsKmQM}b+gDgUG+x+sdQtpczr^4JyP~PNpyO+-Yl%IIoLPRWQQTi zrdUrWo(7?4#)_G}x9W4Ck=BZ6M(>gulD?3SdqJl-GT3>tVJ|Fwz1WMS6R(8zsJ z=y(-zF#J3nwManBZ1k`&wRqi0KVLFKN)geZcIRHoE@UdV{~NEeUGw#ZaXZ4GNitz4 z4@3X5zcW&&6a`WADIE|jSL486M=h!rT{s;!UG_K+3Nw8E{22!Z)`^7(hNRK7`3E%} z?EC8pH_m+~0`HGW!y)aG$`1ilA>lCM(y$MqELdP|>o&8z)_7a4 zqpepEng}`b7Q%37)K?JBT@AD*n}kp3aEfQ?>uhMu0q1-vSpFsRq11Lq_Uj3>mgNvK z@Ww8{OTWDDca2g3FKirJ%-tSQrHMR+A|TH&mV8qxlv>(!w243L#Gsi@C<>e5*x8iE z=?!q~=resvy&Ah@!Gl^!kk6Uw=&H!gaBKl+ni1wQA~`usbhc;DEp`OWn;*p+=lo>Dcp8KCRG9s<`d-x)Ty6ulf0T za;OA8eKsD56qgd>WDVvuA@e^$`a1c$VbNnX`lN@sL`q21q#co)h_dI6a30D5%>~)! z1)O2pmd2bVI)G|ocsOT+$e4F0278l@$xZdjMd3T-{VX)i20J8VTVmYsrO>NavtEcM=&Mx|Ly!uMdV?qn@dxo0(2 zl+COw3e6LwFzG<}N-Dn+G9b>Z&j zrt8Bb^;+@=h6Uv;YEtabr{$lCN(lgPrPg0%Rq1(ZIo@jqfC)Q?h-IL2(>dtC$Ba(i z?C%C&cqF{Myt-yktr>)lC<7idyl)4odXQ)Z+Zh=D{>{s}*uds~ci zN&Qa!dKc?br6>^Q)X)~J*}F+4gcjSE5>oZc<>wriL|bH{F zy)W4+1(j4**%{;9-`e*t6t&x{|FcS4VvD0Hz@>9c)5Al56AoSuSbH+G+Ktex=x*2i4|G>B)1tEdmQZq)Vwb9qlt+d&Z|+3YEj`a-pY_At4;G? z=32Hi*mTIkmBXW}2?}gz)3H8)>snnPLz)PxjYSrHs6KK}i6weIBrRK2@ooeS%SG7? zU}kbeW<;L1XUCy;w~LR4)%J@ZZ%`9o++M3AWSfcMy~`wFc= z;i)8Xc|mKme85ib2*S0 z<_fRj9Y#1t-&~WFN_Pf8)t&;4!nLc_*wp2Y&|Uz<9gkpXaNB z)?te_^q^;>>t|?j-w)o%M2^>rNka2p2!4V;q@xou1>FnoAz|N?sCFQz2~A->5Dg|< zyQsk9EsIyftFdtTn+92_eDM(k=V39Gj{j8)aGt|}VmnhQcK{$h{D+OF=JWNgJ1<(l za(^0ocyjvs=R*w_8AXR@$@H3sg!4HoMO8t5FH)tCy5O|ys~Y%FThFz4nK9govZr{^ z20HQt0<~J|hY)r@JG&5DU;M)%gT})k*70iE4J_YR;&;Crb{($qDj*VI8dvX%&kngiLrE7;;evj8q#r9Eu%@^(3|%ef?+g~g|Ny^1a)Wz zw%<_ZBt~H`_Bw9LMDs!YF0RN!<*1UHR%zVYkfhF8%Ag88AGK1#?RU2JAg3Zh$Ly`3o-|+*}mNx5KlX zs%pO!Rcq=~e=M9-ktN$sYE?#a?F`$s&SPa2glT|t5g=VacAQWo3NC$?3+ zC@$LQ-J6n14>5=FHXldV!dP`HWusLmx-n}?G?Q66sRUtiPLvlc;GU?4gL(zPG#1su zObFgoqPYxW3hP*lR3e$m{oISZCNl*N!lo$l7RX?v!So&f5-`DY%45+YhQwNFeSYt4 zD!f}9kV7)mp_9jgcy>kv{$4WSL&v44jV2sd>V%w2HbFl!edL`8U$cBoZhft|{KVTQi)X<(H`jc$`v7 zxP_@GD^x3#^dBXmk_>__SXiV%+CNi|=z4fAo-y>0j~!BaAGM`P3gx~3M#xoZz#tfR zHh9_T*T^F=Mu_)<#L9rar}<-tuEXC`yzHwWz%D=A$^EFhEfd#Uvt&8>ghOGOrS(HR zsp^iGvHY~@cwG)L=jwgr4%EwVTY)NfslLK-*6d190^(|W?=1iKi*kY z^^L=q?mFDezO=-PCQ)(wud=`oeJ!IPru>Z4)AZ1=NA^D zZ_oSRlGoVA$Z7W=`3{DaBgjST**9^Uiq0U&hEYx1XAH)kYGX+F2x-QCvM(aStqYzn zkuolaT4j0CUtLvX-xqxiCrO6r_m644Jtp3JI1TDm=aANyh^s+}A~Mg7&43plBQUGZ z0}}LvXP*-{@w3%$L6_1jI>m%dDq>!{-RqckTdu3K>kTZhC%w0&iPM`ZdnK+@Ytc(s z2dLbD+Zcfz#^gPj9}80z9o-f=DfwJDncOPM9A-d};lI6RM83}J?Ov8Ml6Sa!SYgmI zX_et9&9Usy{B^56TFwJ|>}*^S5izfyBnL*Y^S#Jk4Z{xA(oN2TV_MuT&y3PEd_W%i>qKj?X=f0Rl5kaT!GY*6XIgy0uZ>~?Lt{+n~Vi(z+ za4RnSk0%E9153QunaiEl<#k$ooBF=-vQM$KUPBFrCMJHdMG5>7LNrVNsBbzsWhtvU zBB@K<2bXiqgs~x4Ek7hqq_N8&sOnpPxj70xl z|9PpBU#NW+rCw1n&*xbg#L(-G-kMckyiMBN>d(Ew$(eu6SapHVx4o^;D=HDNWH}TjH$x*mups3pYRISBk{TG&H;OCoxm2L8 zkB?7^UqmNW#XxsvH=Enp+a9&sg`_;P#RRRHg^C-Ok;!4Qu+Vq@6XQABsIoWU!`--^ zc|^a=zL%XHY8Dao_EEvVr>GxtBFi1Kekm%7g}$VrucPll1_B7QENgvgzuCuMjdSG- z6#Ic64vlBUcxPQ_TdCJ`>?pr0>NBpIr>RR^t~Mk@ya7S5?lJAxxNv*U8}!EwCO z2tvufep@oHmT7DNsKbB8A?34Cae{2t*68&6*bnDa^M2uKO?#h}((yq5+?7}6p zD2#aVt+14j>DqdFpJr&X(6F5F&vvfXz8b-M`+-^q0{Nk>W~OVW)v^x<>@VdYRB6;4 z<6~opB@XlnXRW)~cSRFpYe&q;YaW9<&3~BOir?SW5B+78fm>(dsRzGueC3G6iQ$NS ztaAB9fp^;^wUeU`YZld9i`TYxu&LXRsNj%2`O~+JZfzsi&UdP2x6f{In;1#|M5}l> zi(M(XXjJSXvL&^|?OiSD@%HXq>}zJfq|5nJsp725hWUHzAA6TB@V%IjI5`U(1XqgzK1aO*6*<}-5HTEmRIn7}8iuhAT zug)dc^j;hwXl5hle(#=Tb;mTKHkuMt?(u%tCYO4~#D;1Ihg&+Wh=6M#HD(RocK7yw zL@?xscay!$ZIm-v_J~O`;xv?(LTZ0AcnqBFuu4hU1!YmBRRm_B$i*5V&Y&1A`V_sr z>Itxb8pb1AKtU4;O1EF=Uh}u_&t@f!@6Q$iuj?3Car11p@pACw(5Ktk+EQ^g`5tL& zWo6}XZ2;y9&9Y1VQ`fsQ`u(l&Sg9r^z6)~6N9qS^OfU${1}5Ceq69DzOlLO-;>Zf> zZGSG#MxQTSoND_B^g{3pj@OIxf{)hc)+)$%O>U7p`zHEC6#f|gidskKDn#H27iB8K z^1N??RG@&E;4pt}8|<2}NW}+SoWE}OAwU%fQqPx5g>U1Qwv=1d;`B2piXL(M)YENp z*K=la=P|~q+=v|NN9SDbwS)2^sxFET^(Z0LZwWC6(k&Gqz=Y+1Rado5tNljwYz~3w zdDK3F0mu^S1AwH{3kt0I@qgcICSwsQEjI~a_c=sT!90V)z$OQn^nUY5$3uG&ge%l$ z)Htdx%Dl}M=dV?eb3$d@{n?rSoos@`Fw@z+7Coer>bpOt4J7vkMW2U8BIC$tMpD14 zN*jV15|%S$>!9HYUrS#_QoWp3oh!C`GcN+v2--$>W4gb@`q=foi(e?Lud38Nbk~JK z{vqI?CzAL#Z`XqeBC<^MoNN4PLKsUP^G#QDn8cqQ;}=t(-9YjWq@096!I4Gr z(`j&YB7i!S9xY2@A!79KFvdlTaz%4smThn{fWiTv5dgS@CJ{hh0#!#~u%59HEg0&( zwsA7}=^PDP)%*OfM)};Y1n^nt=u+DJf>pzznT7q(he8(ss)>)Ignt9T1 z?}#k4wA4Zd(!v-|%W=^CkK@9^_G0$^#{lTcbG_i$3a-jJFrCY9 zyY*YBQY6Gk&m6i{E+D2pML3*R(WlG27cQ?e%Wi}?G@W5wnKs)=S!ZSlnWu~qYQRG- z49eG98|3cPLHxh$%KM5)3%RDeyuPmIc2$+PUeJE{wNz-B6x6%t?JvY$r7Z#Vp3m*O^gLFBhJ%)LMv4aB{j7gT>9j2 zKB=&S+>)Z0{-|9JyMC5i-AOyVj8}#Ao-+6@zO5BEPz|0FSarJ2_Ke2^-LJqut)V9l z#1LzRJ-eFxE^3mDw6O!L`p94kOC)dfveNWRPsZP>1xG;5Zv0MFzqbtJFYk zP2m1>_ui816vjRpL8Dg-l$!cKUVI%+UR6S0@biF0u3Uy%nnVws?=^d7r$Qyg%cm!) z7Y%Q}XFSgQIr%%@k~}Yr5(qQoK5*gpnVMT#t>ea9ufP+*_nzY(Vs`)REB&z8mG?8h z#2`X=SkP?Q*^m3OqOJ5Q&!E@*%vnqB{!MDHEAt^vwx8I(Xuj{Sul`@d81?DRsDF}T zjfMx`IFn%QZvvSCoLCrM8Bi^r4zhP+sRpX1HgRAvJ*lJtkRCC=1fFJrIP z`Lv_&jn#E#C5;PrhDT+N<{>NOY`2=1 zVX7eS!+Ry4Yrz7+bhrMiziqduLR~@!x%PKb&7~)PYs`g*iFJd1suNX*Q8#s3v7(aw zEEu!(m~adG2X)r`adOnCmW4ZgxF^l0_fq(5iDlRyqC>YkC5(k!QZ6noe#Y3_*~LuN zSPgaGbp>wAHvstUXF1H6b(g#mQS!&`W{8yGA7C+Cj9ah@LT#HbGMA$tZ z`%|LJ*Tg=$*PMSATu16?#(LX_x*(e43po-I+3lV$L7_a{vq@5JJRbd>?G-}(<_^G& zBJID6u6Zg({iM(lrrsFDelO|hDqlha-h`_IjJIkcP=;Mjf~9~SX<_=;;g}G=OEe8A zc?{lve!229H|Y{If1YsXaY0~XtEVGgrZ2RESm!s}B4KH!v=*^(*2CF$Tc}&}6;x60 z`Yl7iJf>b0`co-7hwKOo9&}>TW@ac@OTFTXatk%`6o5Lp9Ek*+)X~IXcs5s-GJ3QW z*MbL>acsor-(KI0pyO!eTF_@BTg2Ii|MP>M^VTu3t(5PzD=HirI71Z{7JCf zCfqYLV7*J})UIA?4U`@p90z$4GT<20mJN@w$9duQ#$qqgUz&e(thzIK&@%r#i|NU$ zVhvPbZkl;fjqRfF!cR6X*CabOx|1T>0UdnigwE38d#&qFN7{H~05A zFr8o^FGG@1B#Xkw^5#6#ni5Oo(rHw8dZJErK=5k3Qv!}E>EoEYt=ger6L{%$FG4W) zUGPYkBCT}6jjR5~E4R{^qBj`yOfwHzRl5!%SsDR$W>EJ$LSWn3$iV>!xg!BiW zu^QZ(OH6Z|FRb>4c25lWe9%y*KYyoDp6hJierSONP!Y3juW$MJ!E}?ooLazYqhH-M zNgbqp+vbDd)o#0eH^OXI>ibMDb6u(};?!CJY>&YP-bdl9tG0cGwKpLa`M#o$kxXhk z=lDH<+k-NB!s9%+v8nDxK;Td`cz@IF4v$@YEbJjp#fMn9SOJ;uKl%e-Vyy;TSD-~tIS>ZzoAUwB#@Zg42-#Lv|IKhgP3ol!ISJF?S z-6`XGVHw~{dtOQbGX{V!DNe2qwAQnJ6l;h}DEvad+?n`uQZ%6v0k8SbW1KOxF3)@n*5YFEeyZ^0fDX>aFej$5%b_t&}@0hkHadG1B z%K$#&)q8whqu8R}gB}SuhIzg3cR?wmp%kxMAp6rl7nvtt7KuEE>bFUWeGcu?H|>m#q~3)kSriwO+Bl*p7vSxsr3hl1%z z9MlPgb+iu10;^Bv&V7zmE78@wOL}uk*c=_v|Go}Qp(oeZz*3W7O@}u`MYGN!MR=YZh!Z8m`xJ{LcV9JXrp6e=6~z3-)T>j8x9zFdUY+745=|{ zEO2q-7#xaaZ*#6M;8qFYrv!3cpJKC6X{f0e(FRHb^2=JFf&wwF6=t%DU64XX9GUS?U6LZY+fvVYrwu04WT8yg#S7IGfj zG$8LLXKihL$BP!|A)kZ+B#lQVtw3+Wobs3d7Jl$$okhqoP4@HCJ#xL?+70|%MxtT1 zKCgDDemN{@(dVp%v{^sXcx6ap#G_6ZACXndcra+S(b11LmLh-q3|fUV)slJgl77qj z;EfTUp5)L@l6JDYU#FCtWoZ^~wYf>uQUXHZ`|L>fgVLG?Kv{^z#S(6X!<(E)(5aI> z(g0Rg{M)hEe;dH^*;}jUW#o8}^Y2>ISEtZaJH@T0@G!W@6bLo>qnGjLS-0y+|753` zIGS;eY^mL6nok{IP>Bn&o|p10B6wi%C+|-)f1Qqhw{ebTXM4CgJf5mDL4lHaI~84R z7T0&l)VBw7SC#S}b5+~varY2IY{iKP5a~vfX%Wx`6vo&dP;Y%wl@Am~U<4+DqnZ9B zQVulg$K<~;QWi?YrVS62%(jS9`m6 zF^qB59Mv@SuDj1Z{GqoBesWw<-iW@YQP>G6x&IqK2|qp`eFG8MuEYYWZoa X<%GP{<8A)5g7_!L#bnR-bl^I6FucKTH-L~Ss@jnkZs z{sijV+O#V7X$884%=zgB!orX_fhYtBOog5zP#`zQ$gzN{`rDCC@+q37^z3CsLb1v5;?=VcPod2^cuq3g4b5jCK-hLsK|%#5#d%vJQLO^ykk!bZoz zD_iEo!FgA3k)j6-H~Ha(!XVr4@&sp0>$;kxM_JGyk;ycY;2mB>34KsE_b&Mp{GU}7NO;MU<-N#=3cKp9zYu$cKcWZwB_W&lTuR3 z6O{2g(lKO?BT{;)K;VUK5QPBY3Sn7Xw-FGWQ~vJXW1=!=r4@7#e@nKHkn+>qYcg7- zV@K`#D}g#!MF(4f7o;zAJU#1@l9Tgqr(~oyfSq8`3U-}o1b0eMU^zzifD&7zq&5a# zCWSVlE`cof5h^jbhX0`h_KI?W`T}=S0E)zAEPjis(I#_2nCyvI*3%L;f*Y*;OiM;o{n2!?gPJ#|aJkusg3S_18+KvDf4rfbxXd+qP>4Hh(x^oh}* z6Es*iol|#Xc8X^n83RFd#9@L713bJ+259oETOHv#{)!-joJhflH!K1-Plt~rkv~tq z3$mhQ^Yhc{+Wdt*d zs2>%(-l~Xpwm(R6mR_nTcHTd?f=Q%}s4=HfW)NgVy@yHI-pCW0QhT{$KknE z(~wE6##$=xBH^0QqR1%KOAUwAdI3NYs73UI7eE-3CcfcX^fpk;u9tJWcmIRh&fWLrqQEa(9AEh0JU-? zLZ6@=faCSEq-1bslycHmqBWYZWTXeULQ`O}PpHB1 zt=J)7U87a8x`(`kCY6}j$o!bfvW$Z~Z`wNPD(!SzdCIvH0IAI-BJy-e)Vd!VBVpx~ zupGG?Y4T}zGdpOqkaMZ95nc4fVcpOpCQ?AOvmHS+O?QU%O@ct&X$v4BdwUn3m3sg< z@AaQ%C15vi+Iu^VvX>(++FTZ~ug$;vaI_f_IX-{3o^t@C2Y8sPjOYLw!U`aV^Et0N-wliIdCF7mWVxFy*S5uxfP7k{f|L(gV zav^Tr4N#}O}gv-j^P z*3YQn!L=IQF_PcZ`u>oz8!WI92=3VIm~X}96f`iK{uo^egnznGU}YKgrA6^!+-jz90;>6Exr&&e$M+E{kjj>ZAvKW9>=J|;*3H*D6v&%~qdy=s*#%y9{ zX93KeXn+J^Cvue+&+T;Rr8lc?5W`NAi(9`PUwbosS*|WAQLb-j_`7>vFo{n{Sa6Gk zgtT((;p9C5bn@lmk%qZ1mnv&*VWWFNAnHP$$6S}P*Bj| zkW|L91(4XYy^6t}dG|$%y=DJG&1E|v%roXS=xo4K7E)zvI{T1cRFnkt%@WX@6R-mJ zmREn=MP@Nxpn+C{rE=i2|H&v(E|I>>2m7g;ke|nDfc$zm)))UY&2@JI=`h>x;hIT2 zU@25ABzko+9KIdbSPL{q=2lg4?{Ic$qh??CS*Z(2SzwVRfQFeu0549-|DsL!at`m5 z*euRyzX2E863{rJFb^$cTcP5a1N2E)*xb^$#XCz0*!y&@cfXV} zNy#UyZ7E9?qdFH+Y7|K?{q^}Mz*6`>XA>Fv!0oDDj0?QRAzuXt>Y2b!_V z{JS~HSYE)d$$sL+Ia)(@th2q=JBluVCmlJzSU~xKV4DTEFd??H%Q`QUP_<2lL-LE6 zJ2%)V(gSVjsmJQ69C?LuEO>BtPw*hY-Q6_=cXwwXSa7!lcXxL}Ah=6#1`Y1c zAbYrX?>@`FK@O+8tGlbZzj~{8VM&jQiaR0&YCujiJhXJGt^`OQZPRZwAe${wPW#DW zS{P&oZBqoELJnCR)bK84{cf_)Pu6hfY43uZ^w{AsT3yLSvyN(%L?uCVgJ=AhE zd%sOIp=2<*BnvL9sBV`#?S?p5+uLhGAJ>nvsPEZ+O?elH3VD2dtQ1-+BewDaNc0#L^?ZV$$#0gC994G~uE)kB^A##i(fzmjm5 zKe892C#zUJnb%p5L(;&V;<``8@nW60;D99b_3;!VcfNudgn})VR^U8m77VWGb`#1` zwr`CCdA!23r@Z_=U?qLYRcV`R@j$bCganf=ufFLO4~o*t;iN4s zEzkD=xQb?+GkD?^!6F(=-{qJ3BEmnqKOd{WEA5l$hugA4o5MWw5AhAiQFG!d% zQhp`ppcy>|Y-Zy{bOX~Sx9y#DX41>$cD$wf5m#6)w z?{FqCejSLOsL&42s>lqC({vCenU$kj9vrt0))=;IQ`Nvez`M{gla>}nYNWpNj}~Df zL0lbl)cy1OcWK!2BJO{4AdSMk7G#Sldkz9de)ss-H8aU!&KK}z+)w<2@H5L=x+mra; z!B*s*A74bgb!IxG0E5%Y(UO}IBH*{Hwg1KiGa?-qyo^xwjIHUth}A0T?e&YBF(0AI zpj33B;o6g7iL42@$LE#xqHq#CkL$V|fVcFYz7&;I%^4&6`!VToCCE^u3pF>J3C)m7 zkQc36K?}YqKh|8W`Ht(tqtkAQ*9_%_DkdP=qh?jQq2vhB`)K2#zQ$7O(*Xdr@u{a3 z+*D(a;4JwdkXmV%I+#ip|IDo5v^c+C?(tLjQ6%^G0(ob8kv7tFor-eyPr1NM+3Y|q z`n7=&)k32Hrf)ZVGGI*fIDUh#G7ZWTW@OeVvahGWZiKXbrwq)mEb-@G)s z^$0+GJXjjl9wU(vcEZ00vx8(Bl5yVC31Jlc-cDn|u5us;NEY2kdTMiz(dK*citRDq zz_n}Gq|=QMA~VU^hx)qhLL)#5(qL=nN|d&uc+HRdKk-F$!gz8Kqux#jxho#Z;8tb!jj=X0)KOYSQP4d>tYmF%gqnQ>n+i#1j#@=6MRHdiAN$<@5F0 z9hq46i86l<{F3nEP{w43{`@%qkD1h3nW*xZG6{3?33dj z#+-jm1(Ck5@97e{2mSVx4=8ba8U-$cBdJum2s-9VOi!AX9%@8>wtCoF!cRojoBujP z>aTKHa;a6b=^R)4G-XZHh#s&-cwF_3%@4b&Ez+1*J}3_ zKaKy|(nt3SP?qM*`cXJRJ zOY7vj*BtbMyMbpj$>qECP40<}HyUs&2#@?lJ>n6~=oEWMah7T1$sf{4WgwuBcYcAn ze^>SB3r2|lP(Sw~1zhic&>x<>@gqy&@A+*OCZ2-dB&$Dcpc~+1;PkuhJR~f;6 zN!}~haNzK>6y9DoMtyj zrc4Sg|26lu5CA(uu_QXdvB4VOrQgI}*eDr^;-h%vqSc5lM;yRh1PRDan#><#pg&Gb z*wuqM2`(tA>7g()G0`uPYXs%4v!)@T!!_`egMa?@jc=NogGYxT(L7~!^6kCd9h-7H^iT@+~CKRtQfPV3GltXEMnJ-K{?#q zai!sQmNS#51Q~du9gN~*m;W6Zf&CEa_=~ts?wj*&u*QD}Vn)_$0|x4QU9Dx9E9F65 zPlptp#;IytpSI{+Qu;re&m3b1+HEI?mHzPN_$-lHUV6LF|CT6`;>=bMFaYyP8C4B1 z7|AAes4XZEP4_7eG8F2nRQL4sbn-_RL>K2W{)j^Nk#;YG+btp)$0H0_==EnZ$XGT~ zY4@5>j#QJ96R)}!1Q>o?ORo0a;l3SmtWe{F^`cc-j=yBxOy(UkupB2QNx#w(pxn4b zw6PdQxE%ak$S7>c0Na)vUE(4vBZ}K$_Ke)tfi~bd4h_@TQqC-^K=BtL2n_eO%^qft z_QO;edSMw_mq2te4~lLY@u2P5+2}iNKfx;9nXC+8zRwbangxHj{xKyw&in}?&?auG zoN_o)VM=L2-d%IQzQtdOvTbL2xge<0+qYxShxbLb8*3NY$Mfl@dA@Duf{8yS)CEdQ zxZx5DHe2WH%4zpJ(G@OBq(#NsYYd{Co!b;=V73%bWt5<<-HH9>=xerJ0?O) z?#At4DhdAa$36ISCTLyrQzNZbT+3IDQ=a5M`g9AGoL%{$XSgGJE&XEoyGMYm>fH#% z^`+GbBf2#?!8ZO1LUN_-=ZZOdu4M#5Wv|YnJi7K`Z*-lTS4I zzWmZrIovH>WiNc^N?3PP-En+Ujr9@%D_PC(D-A*zSQj7oc^I+! z4Nx~(I$G{Xs*-kGn-wqhvrmIQRlWl>s6$@AO#|c|i@}LZ#oF{xrgxu7r|NZw2hAjQ zgv3YTEv>lWIZa{4-={o1kAt*wV9W`st*i%d^#HFj1FWwcApdtgqcV{2u$L#H;YFw} z454lK1ur$iVRn}hX`LHQa!3*a8mhY%1$FNMuZ~aQ0MO0GG8LX`zwUmT&=iU8u(o~owgDM zHvcdkk;GX**!vTQ3=p1Ves|{`2~lW92ad0j*?y>Uo%>1xF`R@15fBXi->?6Ix!ywm zgrheMNPZ@L1{M3(ES0-uc(M{kPm6&7Y!+3QujCg)Y~J&l`3$~nl>Kx)Pu{iCTHGg|5YMt!=_tYV} z|MygY*3h=H$QlO69e4K4i|Z?OcG}UOhDIF$R?R5Olfgf;4a{EAJzmK}bA}f85(3{l zJRl7XS8bT8Qj2tW<;vWvO?qQ>z-LTVIXiXu<+f)uLkILrITCqE*XKMZSju!6vg+QmPImW*}t0kFR$bV!g1aM->8sT80gzm;Z!Kh zeL8o3S7bAmyJd@Hhw%Q4oTu6~ct~VnqdRhmN^=kuKKnL>%HHwEYvqyC(?9=~_Rp9@XKgsVtUFJTS{-*wJ;u!eV>++*60ix0DptfvpUjM?Ah>G6j zt^dIZF(MfxMp-F|FwoTKv7}`5y)a0R>*TO@t5KHNMfH;rJ-6VM{Ty9m2B-gC)z<)@~Su+G1;^%`d5g9yPo z=X+z9ZJ0>gc?C<9|4~1+!Hr5F)QJ=Rh`MB*zaqYMUPuc#J*-Kz4m|t4UQA|feTD+h zUdnJaaxD9qGAx!z4X-oKbWaHhl+C2#>$1Q791sce+fK@htH3AgHdHb3qB^(SrbiRh z66ErejVFBPXn#D(RL;@)5+C`KO1g&#bM=?um1x3}a)`(0(c3mm=5<6H-*rfev<`kpC^3F2yFpmgN^?oO!yn7*-y&!5L zIq_KU!`-!+nduMU?k7atxpn^@+JzF?&B()GPeB4-t|?;3{fpAYeaD|O*-yk7h-L|O z<1ZC5efzzjEL(}cU$L&tv$Icv8>o+R{myw4bOQwae#J+@4-$QGa!3Xfppy=vy=mgE zv;d4$=kx6fCdAg()*Q&O#Dsvo_eibZlvHnO41n1NKt8MVT1HZt^{8UAJ{bo^lMAo^ z-4mM_WS@ox47UEM0SB85Y1uuOf5%ze-MODl9xOy**k)E^=oMA$i~$i0SB@Az-*=giU)q4P1@ zAPF^qhiJKJi|4OZXypBn7U;qJ`UZ8xnwy^`zicfRVAtmKk@=a7gFAGVvyxpgo3GD6r5cRy(fe(hcD-YXotvn2B~VcSm(1B>2>a3gf_ zI<3oAVBgA+?N}VChxNX*&U(wgkku?(0y+V#xiwdeur%CI>6z zoky&dc=R^mAisM8!EKjFj}89ScQb|<-ZvB#hf3;6)DL@I3@?=Am=`$zZm)*5fZ-jm zufwQ}4oeE4d%=9ABzrZY{%gpo@x<}^snw1GbC)zVf@`mteX9Jj=H_$4T~98Sh`(d- zve_8^cpRy}?#7N^Se);xu;iE2-P5mqpEeV6PuHhT6*PAxDdRrGRVOFK+QfqenrOo; zCE1#45JAy|F{WjPB#*5(xP8I34%M3tRC{6<=Y8a79I>xsy=|MGb&oI?jXfz3cR;W# z;6~8$N352CEHzp!g=bQ}iHdbT+;Z{^O%T&+1NB+QLO3d%B+xv6ysZi~`pb)G>Lhxf z?=l!u`RXbdebf@o0OxagCgV(QkB?Z#9+{gf2+1y>Q>ZxrZQTxsjT0oEJArH^@sU4kcIU zDPg_1W05Vgsq4D6IhaN4;_L976+C!T%SgvY#ur;uVfi(LiRmamI`R>gW zl1`h4uqj8X~MTu+Ps_{=NR}Ti*2Hlq; zU;p7uz3rqx@ByCt0@%r6!;{_!T5991CBcbXFlAK?iKBRNNj0lY z?D_bZx~M5Lca9i8-FY~U$h~8{z8f;kJU$xzX)>GJ;QRZ1HKzmuN>Bu&f@)$t=av^< zf_gVf2OPD@@x9{cF0`p`}Q_$mX3Lyg(}^C!y4Y#V1Bc~ZizJB{7k;{La+7L&ij%lrgNiDE2pfbIAwzK z*G|e5DnsQBuxvDyw(RX}XPxq9#|yz7bFH7B+pFDe=*$BeodY4{xP)Q3yaY1ODbi7J zTyZtiPXc}jFrp6O_rw!Xehw>ffH(4g+h+!xQ~~XyuEA42Q%ZQRYEk~d{OSI}Mt*Mi zLr&&-o$KC&`|*DkJU6J0>Kd#imn50BgTTqxl!ptv zt@u}X8ZGKqJEnYshrdXI{4~e-4^e;N1e{PF#Qlm2$Oi&5-X@;6SBvj^7)A^CHCWz2s0JN3-0n(7I<%m4KtMCKC< zd$P6kbn?slDXnQw$~*32D(@HrrI-1lmO+J(h29a1b^O@AUNog0to0qszjbe1PDmO1&sx9%OrgD~<7fUF zG16DblNj`5qV=;1Pg8MMochG}vZ9r5iof^TJiCs#dg&J$@&krPLO1v2|>Chqjr_sb!FM%jacZ@Cj7wT2GhvA$cUx30Z*CSj}$#@Vg)q297 z)h(Syr;l0z`SSKfLtgtd*?ZDIyE94_y0*HNEAgEhF)RB%vUNqK4OuhpDK+~wd_rWO z>5FP-i5mHGU)Q<+IJ?h8a&zxOo3J*-KMkCHhfR5a0O=Ru5gJlq_z*>MAK&Pn!@|DP zBPn<1DBOLrbo)pV{sVd!0h0Y%`oVa|?XWHB>I!vnaPh z)%qss^p(r+On8NIH#Uv_6?R{)Ii51EcyNs<2Ix~(blWMP@>zKm9WT!^X@k4I+T3!| zJ}@MOf%**I3Lx=J1!=p9iyZgHvi_ytRZe~{2NuH;R{3a)r z)%6UTxbLaAL==2R5)Ef%3i}k&r+Vqf^7~kgVZGB3t+O?+6|pHX-yhRfuaUm8dUT6o zV(iej5m^VSoufT9TRo31%fbUm&7BTeX)3hViX!u$TK}g7P&7qvh`G6^_!l&2jG!@; zuk0Br#P;rBx@wAmy(nWc_xVne+FaT`N!4DvQhD-hUb7vy5rxd>YV$ke$B&=%R=-`i z4Shj|pUO2Sh+(F!Z>sKDTJV*NAv~>+nD{Z6w4U;AxI2VJ)OYb`wxn-Q1L$n4TN8mb z`;O(^##rAt-r;jHB4$jyM4h9%>KAFRTIFK}S^t8iWs|DqYOgqS5!WRg`ciM9>Ksul z`OX0Zwli6v>3Byi3IvQji_ErMr${`v6PG70!{ljZMU=3gEUcOrRW&rszBoHOi;>h9 zJ8*12zR=WFF7po9*_&$V=vbY8uyfz|ae7_Obk6JbXSh4MG*9qY!QC3-Vte}w=Z^U} z&tu@Cux96a$wImRdeh|pS@-fv8oq(KX+5fYai(kC# zvCXkDT%1=lx(V4P+jFj*_m-jFZ2c!ySNV#k>wwf@XK4+2N!f0uN4E~YdM^H$AMClu z6;QicF}l{)WdPB9bB9}FJn{EQT>lM+%$5p*p*Z=CKLb5I8-yp7p2S}yv~ulh&hcnC z@^YUDvWs5fvdihQFSlxQEptl-r&gAt?+?mfZIE(*5fQ)wfXnqU)_ilZMq)}Ml^m)A zecg|Go?LVgwS3^sDduVUX}}At|90S%zW?^8Em!WR5uq>m#qr%M7Tv`ELn_Yh2$J-5 z_{|Dkbo+NaZ<|ecZ>yK~N-i^~1XA%1`wOs_(}2+saG4B?`lXY!zPMg?=Bp6z+X%rT zUxV6wg=dkr)&rsYo(u1A$Sl>?`Rpi3I^9BVomhhzx#V??8^Cz^*wv+_pYE7%u|M-v zRdlnT0)O0RORR)~G1(ZPiOGyfxfw!}D6e#i|5%9g9hl})H#+1POVAxf-6Zg(5w(Ut z;7ZTjWxoms)4&&Yus$4?w#J}uQFZkWEAOeC%2?alaxl*lXf_!jUw(PcTRGhDJo?ML z@lPJk_i@e0#@h_Gs>)Z7ZcXcx#p|+{&$nQ7@$V2>gxGyfYxyRl2Tg@Z9)FioFs+~tr1Q=M6ELtYFit$%Y}Y9 zi&r_Bd>$v2va*{rMKhBep28J8dSN>j-B|fsGwQpGzT&@e_qV1hs$htnIB+n^Wn){te!l^iuY( zr^H2u-Z9|bg-?1};|kXbey$fEmjpL%L;SSrtsF3y^jYgo(}w<<_fQ9kf+gEi5TDx{IUoT0R5`zY3 z*665GcH`G=i$3*?JEAyG9x`d=Q?1z@K7OTCBs7>TXq(>~;%Z)zSQND*&XD->B?)A% z4=}G@F1OP59zI~(0n>-EfM2HAB`2d^*aj7%F5)=R2QZgdi;)}C68 z%c;w#nVDWzMyo_|hp0Cw8 zO~jw0bIL~~A8)YAPFd7+*Burqe15g|E{dM_zlxPB!8w%ki>xnk$$K=To+j^=-6iwg z>3_C}pd;dM^OCHZBy⁢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 diff --git a/docs/conf.py b/docs/conf.py index f83737c..baff813 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -12,7 +12,6 @@ # import os import sys -import guzzle_sphinx_theme sys.path.insert(0, os.path.abspath("../")) @@ -79,24 +78,14 @@ exclude_patterns = [] # The name of the Pygments (syntax highlighting) style to use. -pygments_style = "sphinx" +pygments_style = "default" # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme_path = guzzle_sphinx_theme.html_theme_path() -html_theme = 'guzzle_sphinx_theme' - -# Register the theme as an extension to generate a sitemap.xml -extensions.append("guzzle_sphinx_theme") - -# Guzzle theme options (see theme.conf for more information) -html_theme_options = { - # Set the name of the project to appear in the sidebar - "project_nav_name": "Ensemble-PyTorch", -} +html_theme = 'sphinx_rtd_theme' html_sidebars = { '**': ['logo-text.html', 'globaltoc.html', 'searchbox.html'] diff --git a/docs/experiment.rst b/docs/experiment.rst index 03b1b3a..76a8e79 100644 --- a/docs/experiment.rst +++ b/docs/experiment.rst @@ -4,7 +4,7 @@ Experiments Setup ~~~~~ -Experiments here are designed to evaluate the performance of each ensemble implemented in Ensemble-PyTorch. We have collected four different configurations on dataset and base estimator, as shown in the table below. In addition, scripts on producing all figures below are available on `GitHub `__. +Experiments here are designed to evaluate the performance of each ensemble implemented in Ensemble-PyTorch. We have collected four different configurations on dataset and base estimator, as shown in the table below. In addition, scripts on producing all figures below are available on `GitHub `__. .. table:: :align: center @@ -28,7 +28,7 @@ Experiments here are designed to evaluate the performance of each ensemble imple .. tip:: - For each experiment shown below, we have added some comments that may be worthy of your attention. Feel free to open an `issue `__ if you have any question on the results. + For each experiment shown below, we have added some comments that may be worthy of your attention. Feel free to open an `issue `__ if you have any question on the results. LeNet\@MNIST ~~~~~~~~~~~~ diff --git a/docs/index.rst b/docs/index.rst index 541a001..932b315 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,9 +7,9 @@ Ensemble PyTorch Documentation Ensemble PyTorch is a unified ensemble framework for PyTorch to easily improve the performance and robustness of your deep learning model. It provides: -* |:arrow_up_small:| Easy ways to improve the performance and robustness of your deep learning model. -* |:eyes:| Easy-to-use APIs on training and evaluating the ensemble. -* |:zap:| High training efficiency with parallelization. +* Easy ways to improve the performance and robustness of your deep learning model. +* Easy-to-use APIs on training and evaluating the ensemble. +* High training efficiency with parallelization. Guidepost --------- @@ -23,43 +23,58 @@ Example .. code:: python - from torchensemble import VotingClassifier # Voting is a classic ensemble strategy + from torchensemble import VotingClassifier # voting is a classic ensemble strategy # Load data train_loader = DataLoader(...) test_loader = DataLoader(...) # Define the ensemble - model = VotingClassifier(estimator=base_estimator, # your deep learning model - n_estimators=10) # the number of base estimators + ensemble = VotingClassifier( + estimator=base_estimator, # here is your deep learning model + n_estimators=10, # number of base estimators + ) # Set the optimizer - model.set_optimizer("Adam", # parameter optimizer - lr=learning_rate, # learning rate of the optimizer - weight_decay=weight_decay) # weight decay of the optimizer - - # Set the scheduler - model.set_scheduler("CosineAnnealingLR", T_max=epochs) # (optional) learning rate scheduler - - # Train - model.fit(train_loader, - epochs=epochs) # the number of training epochs - - # Evaluate - acc = model.predict(test_loader) # testing accuracy + ensemble.set_optimizer( + "Adam", # type of parameter optimizer + lr=learning_rate, # learning rate of parameter optimizer + weight_decay=weight_decay, # weight decay of parameter optimizer + ) + + # Set the learning rate scheduler + ensemble.set_scheduler( + "CosineAnnealingLR", # type of learning rate scheduler + T_max=epochs, # additional arguments on the scheduler + ) + + # Train the ensemble + ensemble.fit( + train_loader, + epochs=epochs, # number of training epochs + ) + + # Evaluate the ensemble + acc = ensemble.predict(test_loader) # testing accuracy Content ------- .. toctree:: :maxdepth: 1 + :caption: For Users + + Quick Start + Introduction + Guidance + Experiment + API Reference + +.. toctree:: + :maxdepth: 1 + :caption: For Developers - Quick Start - Introduction - Guidance - Experiment - API Reference - Changelog - Contributors - Code of Conduct - Roadmap + Changelog + Roadmap + Contributors + Code of Conduct diff --git a/docs/introduction.rst b/docs/introduction.rst index f5c57f5..a1d436d 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -75,21 +75,9 @@ Fast Geometric Ensemble [4]_ Motivated by geometric insights on the loss surface of deep neural networks, Fast Geometirc Ensembling (FGE) is an efficient ensemble that uses a customized learning rate scheduler to generate base estimators, similar to snapshot ensemble. -Soft Gradient Boosting [5]_ ---------------------------- - -The sequential training stage of gradient boosting makes it prohibitively expensive to use when large neural networks are chosen as the base estimator. The recently proposed soft gradient boosting machine mitigates this problem by concatenating all base estimators in the ensemble, and by using local and global training objectives inspired from gradient boosting. As a result, it is able to simultaneously train all base estimators, while achieving similar boosting performance as gradient boosting. - -The figure below is the model architecture of soft gradient boosting. - -.. image:: ./_images/soft_gradient_boosting.png - :align: center - :width: 400 - **References** .. [1] Jerome H. Friedman., "Greedy Function Approximation: A Gradient Boosting Machine." The Annals of Statistics, 2001. .. [2] Huang Gao, Sharon Yixuan Li, Geoff Pleisset, et al., "Snapshot Ensembles: Train 1, Get M for Free." ICLR, 2017. .. [3] Balaji Lakshminarayanan, Alexander Pritzel, Charles Blundell., "Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles." NIPS 2017. .. [4] Timur Garipov, Pavel Izmailov, Dmitrii Podoprikhin et al., "Loss Surfaces, Mode Connectivity, and Fast Ensembling of DNNs." NeurIPS, 2018. -.. [5] Ji Feng, Yi-Xuan Xu, Yuan Jiang, Zhi-Hua Zhou., "Soft Gradient Boosting Machine.", arXiv, 2020. diff --git a/docs/parameters.rst b/docs/parameters.rst index b256840..2e33174 100644 --- a/docs/parameters.rst +++ b/docs/parameters.rst @@ -92,25 +92,6 @@ GradientBoostingRegressor .. autoclass:: torchensemble.gradient_boosting.GradientBoostingRegressor :members: -Soft Gradient Boosting ----------------------- - -In soft gradient boosting, all base estimators could be simultaneously -fitted, while achieving the similar boosting improvements as in gradient -boosting. - -SoftGradientBoostingClassifier -****************************** - -.. autoclass:: torchensemble.soft_gradient_boosting.SoftGradientBoostingClassifier - :members: - -SoftGradientBoostingRegressor -***************************** - -.. autoclass:: torchensemble.soft_gradient_boosting.SoftGradientBoostingRegressor - :members: - Snapshot Ensemble ----------------- diff --git a/docs/requirements.txt b/docs/requirements.txt index a8418a0..18e546c 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,5 +2,4 @@ sphinx==3.2.* sphinx-panels==0.5.* sphinxemoji==0.1.8 sphinx-copybutton -m2r2==0.2.7 -guzzle_sphinx_theme \ No newline at end of file +m2r2==0.2.7 \ No newline at end of file