From 8df0c73bb45625810d731d03488f9819bbdea5f9 Mon Sep 17 00:00:00 2001 From: Victor Mylle Date: Mon, 20 May 2024 09:35:07 +0000 Subject: [PATCH] Updated thesis --- Reports/Thesis/sections/appendix.aux | 12 +++---- .../results/policies/nrv_samples_policy.tex | 4 +-- Reports/Thesis/verslag.aux | 8 ++--- Reports/Thesis/verslag.log | 26 +++++++------- Reports/Thesis/verslag.pdf | Bin 9101254 -> 9101037 bytes Reports/Thesis/verslag.synctex(busy) | 0 Reports/Thesis/verslag.toc | 4 +-- src/trainers/quantile_trainer.py | 16 +++++++-- .../autoregressive_quantiles.py | 2 +- .../non_autoregressive_quantiles.py | 32 +++++++++--------- 10 files changed, 57 insertions(+), 47 deletions(-) delete mode 100644 Reports/Thesis/verslag.synctex(busy) diff --git a/Reports/Thesis/sections/appendix.aux b/Reports/Thesis/sections/appendix.aux index 0b25e25..379bb9e 100644 --- a/Reports/Thesis/sections/appendix.aux +++ b/Reports/Thesis/sections/appendix.aux @@ -1,12 +1,12 @@ \relax \providecommand\hyper@newdestlabel[2]{} -\@writefile{toc}{\contentsline {section}{\numberline {A}Appendix}{57}{appendix.A}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {21}{\ignorespaces Comparison of the autoregressive models with the diffusion model\relax }}{57}{figure.caption.35}\protected@file@percent } -\newlabel{fig:ar_linear_gru_comparison}{{21}{57}{Comparison of the autoregressive models with the diffusion model\relax }{figure.caption.35}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {22}{\ignorespaces Comparison of the non-autoregressive models with the diffusion model\relax }}{58}{figure.caption.36}\protected@file@percent } -\newlabel{fig:ar_linear_gru_comparison}{{22}{58}{Comparison of the non-autoregressive models with the diffusion model\relax }{figure.caption.36}{}} +\@writefile{toc}{\contentsline {section}{\numberline {A}Appendix}{56}{appendix.A}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {21}{\ignorespaces Comparison of the autoregressive models with the diffusion model\relax }}{56}{figure.caption.35}\protected@file@percent } +\newlabel{fig:ar_linear_gru_comparison}{{21}{56}{Comparison of the autoregressive models with the diffusion model\relax }{figure.caption.35}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {22}{\ignorespaces Comparison of the non-autoregressive models with the diffusion model\relax }}{57}{figure.caption.36}\protected@file@percent } +\newlabel{fig:ar_linear_gru_comparison}{{22}{57}{Comparison of the non-autoregressive models with the diffusion model\relax }{figure.caption.36}{}} \@setckpt{sections/appendix}{ -\setcounter{page}{59} +\setcounter{page}{58} \setcounter{equation}{8} \setcounter{enumi}{0} \setcounter{enumii}{0} diff --git a/Reports/Thesis/sections/results/policies/nrv_samples_policy.tex b/Reports/Thesis/sections/results/policies/nrv_samples_policy.tex index a7db533..8e73c9b 100644 --- a/Reports/Thesis/sections/results/policies/nrv_samples_policy.tex +++ b/Reports/Thesis/sections/results/policies/nrv_samples_policy.tex @@ -130,11 +130,9 @@ A comparison of the baselines and the best-performing models is shown in Table \ \bottomrule \end{tabular} \end{adjustbox} - \caption{Comparison of the different models using the CRPS, profit, charge cycles and penalty. The best-performing models for a certain type are selected based on the profit.} + \caption{Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.} \label{tab:policy_comparison} \end{table} -\newpage - \section{Conclusion} In this thesis, generative methods are explored to model the NRV data of the Belgian electricity market. These methods are then used to improve the decision-making to charge and discharge a battery to make a profit. diff --git a/Reports/Thesis/verslag.aux b/Reports/Thesis/verslag.aux index af2dc78..cccef2f 100644 --- a/Reports/Thesis/verslag.aux +++ b/Reports/Thesis/verslag.aux @@ -113,9 +113,9 @@ \newlabel{tab:diffusion_policy_comparison}{{13}{49}{Comparison of diffusion models using different hyperparameters. Early stopping is done based on the profit using the validation set.\relax }{table.caption.32}{}} \@writefile{lof}{\contentsline {figure}{\numberline {20}{\ignorespaces Comparison of the two samples from the model with the lowest CRPS and the model with the highest profit. \relax }}{50}{figure.caption.33}\protected@file@percent } \newlabel{fig:diffusion_policy_comparison_high_low_crps}{{20}{50}{Comparison of the two samples from the model with the lowest CRPS and the model with the highest profit. \relax }{figure.caption.33}{}} -\@writefile{lot}{\contentsline {table}{\numberline {14}{\ignorespaces Comparison of the different models using the CRPS, profit, charge cycles and penalty. The best-performing models for a certain type are selected based on the profit.\relax }}{51}{table.caption.34}\protected@file@percent } -\newlabel{tab:policy_comparison}{{14}{51}{Comparison of the different models using the CRPS, profit, charge cycles and penalty. The best-performing models for a certain type are selected based on the profit.\relax }{table.caption.34}{}} -\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{52}{section.7}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {14}{\ignorespaces Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.\relax }}{51}{table.caption.34}\protected@file@percent } +\newlabel{tab:policy_comparison}{{14}{51}{Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.\relax }{table.caption.34}{}} +\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{51}{section.7}\protected@file@percent } \bibstyle{unsrtnat} \bibdata{references} \bibcite{commission_for_electricity_and_gas_regulation_creg_study_2023}{{1}{}{{Commission for Electricity and Gas Regulation (CREG)}}{{}}} @@ -189,4 +189,4 @@ \ACRO{pages}{MSE=={44@1@43|45@1@44}} \ACRO{pages}{MAE=={44@1@43|45@1@44}} \ACRO{pages}{NRV=={3@1@2|4@1@3|47@1@46|48@1@47}} -\gdef \@abspage@last{59} +\gdef \@abspage@last{58} diff --git a/Reports/Thesis/verslag.log b/Reports/Thesis/verslag.log index 73608e7..c92e2f3 100644 --- a/Reports/Thesis/verslag.log +++ b/Reports/Thesis/verslag.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 19 MAY 2024 23:59 +This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 20 MAY 2024 00:35 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -1571,7 +1571,7 @@ File: images/diffusion/policies/comparison/Testing_7008_High_CRPS.jpeg Graphic f Package pdftex.def Info: images/diffusion/policies/comparison/Testing_7008_High_CRPS.jpeg used on input line 99. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - [49] [50 <./images/diffusion/policies/comparison/Testing_864_Low_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_864_High_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_7008_Low_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_7008_High_CRPS.jpeg>] [51])) [52] [53] (./verslag.bbl + [49] [50 <./images/diffusion/policies/comparison/Testing_864_Low_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_864_High_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_7008_Low_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_7008_High_CRPS.jpeg>])) [51] [52] (./verslag.bbl LaTeX Font Info: Trying to load font information for T1+LinuxLibertineMonoT-TLF on input line 11. (/usr/local/texlive/2023/texmf-dist/tex/latex/libertine/T1LinuxLibertineMonoT-TLF.fd File: T1LinuxLibertineMonoT-TLF.fd 2019/05/20 (autoinst) Font definitions for T1/LinuxLibertineMonoT-TLF. @@ -1640,7 +1640,7 @@ Underfull \hbox (badness 1635) in paragraph at lines 49--53 | [] | [] | []\T1/LinuxLibertineT-TLF/m/n/12 , vol-ume 37 of | [] | [] | [] | [] | [], [] -[54{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_dhi6qf.enc}] +[53{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_dhi6qf.enc}] Underfull \hbox (badness 1430) in paragraph at lines 74--80 \T1/LinuxLibertineT-TLF/m/n/12 and es-ti-ma-tion. 102(477):359--378. ISSN 0162-1459, 1537-274X. doi: $10 . 1198 / [] @@ -1650,7 +1650,7 @@ Underfull \hbox (badness 2134) in paragraph at lines 123--129 \T1/LinuxLibertineT-TLF/m/n/12 117871$. URL [][]$\T1/LinuxLibertineMonoT-TLF/regular/n/12 https : / / linkinghub . elsevier . com / retrieve / pii / [] -[55] +[54] Underfull \hbox (badness 10000) in paragraph at lines 152--154 \T1/LinuxLibertineMonoT-TLF/regular/n/12 elia . be / explore / dataset / ods047 / information / ?sort = [] @@ -1685,7 +1685,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 168--170 \T1/LinuxLibertineMonoT-TLF/regular/n/12 elia . be / explore / dataset / ods022 / information / ?sort = [] -) [56] +) [55] \openout2 = `sections/appendix.aux'. (./sections/appendix.tex @@ -1817,10 +1817,10 @@ File: images/diffusion/results/samples/Diffusion_Test_Example_7008.jpeg Graphic Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_7008.jpeg used on input line 154. (pdftex.def) Requested size: 172.99498pt x 86.16971pt. - [57 + [56 -] [58]) (./verslag.aux (./sections/introduction.aux) (./sections/background.aux) (./sections/policies.aux) (./sections/literature_study.aux) (./sections/appendix.aux)) +] [57]) (./verslag.aux (./sections/introduction.aux) (./sections/background.aux) (./sections/policies.aux) (./sections/literature_study.aux) (./sections/appendix.aux)) LaTeX Warning: There were undefined references. @@ -1831,18 +1831,18 @@ Package rerunfilecheck Info: File `verslag.out' has not changed. (rerunfilecheck) Checksum: 78A3B45A8B1D632CBDB591FF4FE72E7D;5101. ) Here is how much of TeX's memory you used: - 35786 strings out of 476025 - 784747 string characters out of 5790017 + 35785 strings out of 476025 + 784740 string characters out of 5790017 1883388 words of memory out of 5000000 55362 multiletter control sequences out of 15000+600000 613012 words of font info for 120 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 84i,16n,131p,1821b,765s stack positions out of 10000i,1000n,20000p,200000b,200000s -Output written on verslag.pdf (59 pages, 9101254 bytes). +Output written on verslag.pdf (58 pages, 9101037 bytes). PDF statistics: - 857 PDF objects out of 1000 (max. 8388607) - 662 compressed objects within 7 object streams - 168 named destinations out of 1000 (max. 500000) + 853 PDF objects out of 1000 (max. 8388607) + 659 compressed objects within 7 object streams + 167 named destinations out of 1000 (max. 500000) 605 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/Reports/Thesis/verslag.pdf b/Reports/Thesis/verslag.pdf index 70a16dcfd91f94754d383229a18d2133f52ab15f..8318c52aeae3bc697b8814594260e6ed1be9cfd2 100644 GIT binary patch delta 15676 zcmaiab8sd>_ik+L#>U3B&5do_8(VKMvH1oYY;4=k#!faiHpa%-yWjV_`14LxPd#(` zIo&-~Q)iw&eMWjKVJ^BWVS)fi01AKxU;tPE4uA&`07L)@Kn73%Q~(V?2R;Fx0So{W zzyh!V8~_)<1MmR?fDj-8hyfCS6d(i0fiD0BKnYL*)Bp`Y3(x`d00Y1XFagW}3&0An z0qg(=zzJ{x+yD>23-AH_fB+x}2m!)?2p|fG0pfrJAPGnT(!f_h29O2h0C_+GPz00! zWk3Z`1=Ij_Km*VOv;b{D2haud0DZs!Fa(SMW55J31|^aNM2aPjvHh6T z-3%bJL1no5)K3jQF?L!YBZsk?ZURYz7#&9nb^qiMBN)`+)YimFru%bB#UJ9wx{~}iZq=Udg@L8;%h5TUXVrk?ucbpdli6mwCFn4>Up$f9r<+rnc z#i(NbX1uIPIMem5CD*$m8Dzqk-9Su~Jv>t>+habRdZ0t-ljZSaxVIX&y2-y;9>Xr?mod45IJSQrJiJDz4P{#<d$fm!6azDY=Q^uZBX~HnDkxQD12&BUvLou{FX^7xeJq`P?1>H7dZO^v$zTme% z4;-B7z5k3gEB1*rO9Q#4{EArPl10dM)wY;QuB=&IGhBLgAC!JXFu&}OZrUK}hN?4( zQPjN5KI@t3i;4i(iRAj@>E~~^UijMWD785r=*hQu@Xiu-7^*ib_gCSwe92un9WRtg z(r|khKIffDrU|Q#IbK7f(Er8Yzp?Pi#N}kKZ8VU#i!q49!2u*0cp0FfuD(6KF=YLz z%GiG;r$zBs(@jRs!pB2jDLq^pr0_M%p9az&=X@dYV`V!v=RwqXM}pKc#Kh8GyRhA- zYXxX4_D5lG2qkQ|NwfN&V3!C&+{=sBR%&YBG@+|X8<@O2%L*_y0@cy7Ra%9KHjjTz z<=6>3ojGQCqOXC%-mPv$_PR&hcGDmRn~5ECTxD~AWgIkA<fd?t)hHn&y};(aNG% zd4f2GUD`MIEXx9Nv+wZ=`l<+-R$7nRGiqbhBDhvJl&25e38r#(DCTF}MtwW-L3r-lAcD;@=(qk8J!D28M=%|`$ecP{u2B)2oV|9)7D=xS^b^tgv zZOrqE{i5_O1U)lR&)dzhqQG9!`PH}1j+|ZHzQCAylbMtPy%!Q;HEOTdfI;2+RJzM} zoObA~knqNyhH>i9Sda~y25ZzbT#)HyuNT&>st8%gv2+H)jaWFFdZn99MaV;(E5Ov+ zDtPk_vGeWqI)3iX|L#*$NlS4;=C?I_?GqsU(HhU>tA~2Kd!>6jqBw@gG))OLA2o$I z6rHCXc{ckBNVn9>eywV8n>1oIqa3b79xXAkAgB!T#7}t7zJP(9f3;az3j~onn;r~S zT?od6;^9f@H^*$a+1;x$-X3O`$Y`r@P?tw%06)!!e0YSgSyiELe3h>NTFg+S4 z5{rVRqqVyY89Ofz@4w;bK>GR#gss?tE44f3uViR5yWP&}2S?nZdN8Y4GWJhmm4`Jn z%W|ia=WCa>S6V0rRZS(fMABHWfC+e5f{SB zei2Saz3XmsRpD7xgeh9oUiX%({&SNa=tt{>(`DkR`+mn(k@fQ2~Ytvj#;8eml(i3o(;{! zJ+AZ9!lK`joy5N>AKht|4S8)0hILiE@%o6>7=!n-HYXG=Q=P?gmY@wBJHU{HKXsvGq4h1R)mOWK5l$+@0y3?bHI*6TCT79(vm&J!O?fw{?{780Xz*zWrDQMyIjalhsDm`!wIrb)REjj5I|)_VeiZzA+A2CoAExgEFR!;)P$&k4*#6k#D(d zR^hP(#3zo{!Zeq_F{=gbdP*fyt4oPj)P~ww?R%PcXRV;kyxI;~ZLE9Z!qaE7t#a!b zjeDZCue0+cmwbQVUk6c`%1|wP9fQmR?_tlhwz*<{YyMtDW_(z3(|lLi^0W*6K)*_t zs%vAQFyXlx@3OBCcvcG_)f6UMjc+|)!9~Z zqka=<^0A5dAry=3VpBVcdR<3T`9KgDgzRHe+lzi7SVg)rWBM*AxL+4YlIx-)QkzTa zTvO_#5m0aAD7Vl!)K&GN7N8yw1?SKwZ@P!I5g`kj(`ED=z-;-sUKMa&UGlIDd3n0q zG5CF{_5RJ{{<+cm9ck%!p~h&kvhwt58$^;`0octF>@Kbj&G`Zk`^!>pf zEme5xS{2)lS{h|_c5EnTt!yH~h@+&b<#wkVV({7^DHHqH#G^%G_#^Qj6K@eh|8*t1 znyAV}nC`=AQ|c_qUEb`h&)4g?u?XaF+-?RLw%2A2SHuP=BtRn#c3Rvk z>-L7+iyx+)RgEO}4(`!gfQD2?dWK?`5-6OjWTt53M=IwB3a z>m_*+A919hY^vK(I%y{0TNqwwT~;pI;9sxya1pj6%?<`C> zTzgVALP@b##=O&4=I`vXRJ~p+-R5l?BtL6zHk}{`yQAIk;9S&2Ca0T$zhb4E!A#_9 zaKDWdFva|`wuwtaD(6;{jMsX7iwdUa<+R;ePVk-E&`ddN`C=V%^ywr+qrDdNslj6{ zvzpih*W>y|=Z%s5m*{~~pJ+5c`9Lc|R7&tnNPPeF-@l&^@PZK-T&sxh!b1-}ua7`~ zr^5==%YV7+)Y_gQ=ys4>*Gk~lQhfHx+{U_n(ex4#$SoZTU`N=ZW(pIAIvo*`ip^2X z(joUxm%GXu#-GC{u7unoQ*RLlJ*#8QHYHIogSjLql9LWDh@NCU_`~0o;XF+ngLlX1 z2R@POZy|HT&^_4Nb_$9Q&Mc7hy9Haf}}FLGxWi@|H9gBr>$SK~|er zc?ZphXV^SAYm|psHU0TO#eGRh!Y{xmF@hU?e{!}(B0Ic=aLs@5Iam_vosL04?;1lp zTo@`Lm#Y+de?0FK3Rm}(P3PEsl}73qoVBv)f{D8S$)J&`?N4VnIwISpUu4eYd_h73 zHyuGjIGSYMOubCvFfs4$Ac*jRQMBE?3p3%$V<~0a$EB$PBVE(NLzs4UN-xMRMCp&D z#v2$S?z%14{9F^h;gDn)w1?mOSEi|WTX@0B&Ryze(h3CVRsAgs9h0T3sHn>)vUtAv zqJ~0YRxD>79ZQUUdD7NwhNDjN&`3C2{a^cn-qw#t-ky zN~~p=aM?l&RR5as#Mzzqx|nvU%kHkWnkoE zdITPWsc?j3k2~#sLKbsGI{5KcNx>ZxOPiYXLPaN>MMqsq{Sk})ZPfHD9@_7NUIIlY zT_3`eqtM@pL2B+KJLf6{b%VZL;iNlSU_x}|L$^h?pJ^7ghquqvY2aAS?|mqLqITGp z-s3WnViDFI8@)3^ur}-Q*b!)We^8*%4Pbox(bhk}dqH`lCNcHAK-_Ppd&HCC*ueKy zPrP>hbZM_ggJy?f0Iq#jPLySwYF5Gy^;lv7zm1|D4n!rD)hFO}RkS8fBih(yI3SZI z$G<+W8I!%-rn7XnF6Fjud|36d$eeYV06}XQV65bVJo6Z6qHZjzb>!NiVg_~J8jdKe zKAD^FrQG|+kW8_iHhbjJz$&GAncfn&vQoHdds;Ie+?`sYNVbBKa`=W?*jKk65#%i` zh7hcR-A&2ZBdF;-Imzt8_u^5hP&H+n!tQf(y?XO<~^P&w-(=@2QPK9~-Hh{uN z6jtmKj%ljY$nRvo)00}_eC*=Y_D0N48JYgn=b1BhmP`fXb(jRYPM-+Ekg39VA5p%& zW0yaegREIO2G;Z{xi z`!A9kbf<-6&4amxPWB;ud%i467XJ3y9vQ+<^0E~ z2d7*D*sTWc;j|uL(!nt7h|J&Nt(m_gCTzem?%`Mw-fEGp-fB_!w&1Ye;aK2*MAX)X z&Zwa-u!UMAc594xbO-`Cp)(4rl{`4Q1{#`&j|coY_TSnMf#_;zu)B9OR%=OQv<);A z4_^wT4`wSxY;+|w7(MtOWj7)E3hF;^iq(3M99;?xPL2F$%}tL!fC7JtjmB;TXGWJn zgQpYzS=Dl)KSP0Mlm9`_yl6BSaCG`Vw~WGQcW7{M=08YQ8a)pU7S8zx;VPq_puuK& z{~$(fv@0|?tni;3xFOmV3X%gndlgKJ&cXVB_cC0Z|Mos&&Cv{?lm+RQk4xhp36IM- z3#X5l6^mMIeUuJRroohySZVAWX4fMexxYxb4_3C1`IyFT8Av<_OZ7FBCz3l}|M1QD zqybYuDj2fO4-F3Ow2Ogh?KOfwKjzsqgiFUyVuiJ-Gw2D7bq!)_YQ9IEC?0l`+GZc* zo;YATGp`xIPT~@Sjw-uH#j2W=+A0i-<4_L8IMZs}S$_~ zH44id=R(M*uM+V!K3Lmrs`}RM$PUt(eP_3MI?)rEaC%{5kuOC}$}4LZPd83Tt}^$|IJ}Y|6@J817GxjVlh6?dZYW zG>C$2JvmC-u^%6g5|2N{Ng({@$LX5BrF zazYu3AnQ9^p8Y$xWyx?sLKg7U8v(a;pzw?N^L@;r_iEq6^^i=?R1J7Z+gS57)_dYY z&YB=v?(GiON_*z0@eX&Y!8eYMG*|P~@@}-@G|K<^res$SJcYn%z>&G z#nzdV$Aiok?|Lfh#)h9a{ZVGL!n@lj!ln`qI^cZx3rArkZeCM=?H#`gQ_FsP_I&Up#%GdT39sNfP^3|s0@J)^cCyyJTNLi!Hv>~G?9GtjYPQRqzw!bQJZ&HJ6hE|X zkVb|~g6`kfL0rd&Bcs~0Wc+09cQ@GaCc+)YLtWLK#+^+-nu9HF~N z{4v~2k=>@>Ju>dR`Zjj9@RXoX?u|nVLuZ5Cc)G8h50bB>pmM8*x*&;70$~~CzpfaY z6E$Jn!MQ_?+}D}8H;2Fv?Nx6>6RWgvv!J zRFQC#QXfy<)hcg0kFP++KL7PRez5wpW*^aulEw55U3Aa18c#!?sIj!yBep-m#+9a#YH-z5wJVnMR2rp>< zrU!$I?E^J@1;Q1k5$CviZr(2h3uh6S7cf%RCA+lSkSLC_6e1wlck>e|G}j;L)VYKw zWjtv{sQ9M%(vK^-r$9-xr*E7B+MVjVR^9)4I()HS{B|HKpr$;k-4$-r{tKYlKlB%m z@lvC>EtcNhK7CSbKhvl(le(7x^&!4&p`g+#j+PijN#|%4ke@oR8#9u2kfoALr6(u}JX?!bF*r0Q!2JxB6Pg88F6~7q+AZ^H0yqU+|!UrPiy6fj@f`;H3Aa?m6VWtti zO``b1?^v&($hKy&sNUifOzn~=p|5p5B(1bc1kTn(8mzhN{It)G)>d9_zL_sGloOAz zkIA%iQU)XJXEH37e6LpliOmRNY{(?aq;sO;`YU?EADJm=mZ=tWo3JLLd&N@YyQL!2 zv5P^RaY7S@n{*fXX4?+p~ zGSwjZI+}S)Gr-hnJKE)XU)l=^I=!{NpXqzSb6HiG?QRMXKM*+sHF93brSRFUnI-@v zK7tO7X+MP__GC!Ni*!un^%Xh?byUQmkBWH1-;Wexw}@h(uoy=_zc3Q+1RC9Cq}e>dPM9_1+tILv&4Pi48i7bwMIr9>L01JB^G#eiDx6Y zh<w0|TiXpsz}R3YdPipFKi&iPnq-4+SXSL(&Bqt3;t z*6Rt(6qw=!{&*x|633lqaD(HSE$3AD38OM>OzN2{RnyZ$+|B<+tzqQYKt9U92-yPM ztX$WN(OHMW+6DC0QlUR>kL4!RcIU*A9}mm!`%`mqKp|NJGF9;yRJuoHRc3O!Tv%~t zPb@##F*Nml4zlW+re=ER3iysijVYV!pv5&D54jc@E_@1yHIf&k#ql)p6JTD3Rh2}T z=&gFeM@agB)Mqz>u!H43gZ5)%HBE5Gg<%=&oTXRgQ%4TQf~c*>hCN0qurld1_#suukQH>>Bmm5?XffbMje_FMFD!)#WJain1Jo$OZ)d$T46;z$hZutriu=vb zPl!;3CTFPG6xMCN+X~0CO)tOU#&X#2$9^e`9yAF6yDZ;lx!`=fkB;E8QX5m`aain{ z+dR&6qd&5YAwNoFt&Ipx^aR&C&TRH{j=Vn#g7QtjJ#KONMECo(DOcbiEhX@n!KXBIFl0}Z-qkWnGq)W4kL@WdRknb3p;4I=yCn=M^ zHK>?!pv0-Q{F+M56~2$hJFsu&T86MdDC^?NCW$fVQ4y+`u9LWxz?Pqmm!t)Lwlj$) z)58CfF9zelu`g!G$Q{s=z~E$4>@I;|1@ieAe9nO7tskF6hNF%%3Zl=9E3&}&-bnJ5 zhk|>miJJ-MRX&rgwXjE@->>6G4Foy&)YfK6^QC(wgcwRAf>_lM?b&?1yD8GdqcnSg z-eqAtC2J~*b(}%&KA&%Dhov(Ub7sZ_@xI9*bmoK!GdQpt;)kUWj`#1H9I|;?7f@)w z-;C%lX1MSuDL5Bfk1-)Wo{ci8K(k_upKoc(LUiYQMmcDUv5e@Qa8(JM(1H4Nl&*Bu zb-B6U7dl&byi}0%uX!}0`y5gdgl#bkSoFktSjUReS$n~w7Ga{oc}3e}5DcW0(zn#$ zT%4dj>bfsML3ZriDXMG6iHNJKS$yH zeW?bHgv^El#=0m~y)4m;<#`o^^7B8sCGA4Yrw$PXGP%{5IH$jhX3rs-89$P|_}Sg_F3%CVPYL)gN(>t3VOor9r3tPe<8S zuFoVQhD3DCHb(p0FK@>o*47ISDh_ws(#`4H<8%ywC6YjR%>R-qXJqpU;u@UCyv=RHm+4 z_scspz;{-$_!Ivk>c8BN1?c%R{KS!~aPIhbUpCFB6-J!XXa!a6)`i0Zs~1&6@f`c2KdJl zyv8Fw>K*JGV3(fQyGMC1y^e@thLmS^UD}ke|K7wUX;WY`C)eT62XxoREb3c|V~Pcs zh)a5M7hAZ`<7!A{6LwVJS0}Ci>RvvPc?*8(3dDYN_w;smP8i4 zPNRG)dbDR2ML^w}GfT+#YVY}h8ndYkeNJpWJt|I1?et`wDsgr-EF&?Gr#Zfl3~L7x zg3?7@NuVfv^c93`=8zc|_wtHq+d-Yksda6J_-9AOX zSAB1npgv+|_j$YhScphiws7^;p{+-NB_CIzU#*d)%HS$*6H=Q?9U@uy!v$PpFwzu` z?RgDM$<7QBnyQ&j!8e%YAYU>Y@Cv*?pMN|ah+CIr)A-emJ<4CQg)I9^P;}OriC1kB zU@GuOBZBDAyc3u6Wo3k6QH;y9nP}h=F}tt`J8|9qo~rV2RuYc~YWHq)Bd?91_A!-6 z-rXc3dxdPYD$jh}Oc6AquS0H&DG~PWc?unPbnm$bc(JrKKqNRGbFe{gN0L8z+91J& z@6i0*x4w_jYga&eeg+-uwRDrwj*3?}E| zjD17)PpBpz^-Z8Bp6T;wMe__w+;*~_ING~tB1**}p zWm#^%ubVR~ZspSRhk9v8nD?BD`b9z3gi0D>-AanTBcAbE6Zuxh(cYQr73BfuOj!Q# zF9nh9ETxcM^$P0aZtVw@EQ@(2cRNZ!@>RWNza*A-mnu5J4j3^w)3d)S9Z2cEi>7q) zToXsetWWw50* zdbfElIq#lOUfAVt+eAu|G4tlHb{Qu130+b!zPW- zKauz2uq2pNiOX!Aq22c6e23%9DZrW?tVVK>Qj9zfahRi@W2rZi6rS%bh(lmpfgYsS z>wtl! z{%H!A)q|PW&47uiy3;)}vfM{HI<_1c6=26#5u;rhaxpc7lbzt+1>IfMV5mMt{~Elq zN|z?4Bl+z;K>v$BUyDacT7Ap?;^>&HHIvd#Tj!(MFYM2vGmEy^T)GrHp{N^Lo5Tl?_H}%60j4BH=$%h30_*3h#pdzDylGKD$8uo3B z0Zjsinh4pY%_2h$&-{!~nH|iRs7Ui#D-x$2&$<`PwKl68e#9zT?%$@Z6MXhBl#YC}v>&d{I(2qPl zJdd!yzAi`tw|K%$M$m4m|6Ze9a!Sg2OwLLm=i16y3^*)P)Z3@7p1uMVE`6Ijo#(Fp z&GD}r}h~FWi{(QNUKq*a;u1I>3-98Q+xjx8TT1e z&q%j3s(#bUH@$n@B2At4?0O@o?mPo0O#4fv^PZPM>Uw?ZiKSP(vkRPRt86VlFTF<* z{*9q?9Q(mpyRhAuZT)aiU+FiqO^m_uTf6;Gj^VYQAG36Cs_`Gay zyM$>y+SZKV(=@5j=DM`j)wR*vPpAIcH%Hx=i{2TAT4eL5))eG$P zHmqw+*I6DMUNsBuFRpG;l`LaA#vj@9x}{&Iaw|J~CV#s>3ntZG%Nh3^y;gAofGZ6P26uqYp2e-pxJI@=i9tQKe81a@c>z zIlf-6+5=igKhk_`M0n78-ig>Q(^P_%+XYY-1_}aQEZDT*BS}l zX4s_i^OD2Yxe<+$yzztP@}_zTafJ=GwW1}PUO)HFmMyNeYU#7)IpSSQTOoyVUpao^ zGxEHv%qcFdSe@mYS%N^BntFksOAIykouCTtW(Vu}&Wsvuh1!+OEmUU7rA}|7T5qFQ ziO?08d@sa&BgFh=fl~TVuZ1}`Zc-Bmqy5SU`{Z*O#^lAbXF4xbQWr&Sob4cuM7~gO$?gg2f`uhDVFcs!?rY>=>%f#VQjj>oqoOd>$&d zWJJ?Urc7Gm#w^)y8HWn^Q?ZtMGFFs7LzTu9bT@3Ls$3P^j*tdZVI|V(#^ew?sP9@U^ZqNMwj`~cbSN2uCcr9M06`DJV%P;%G+TTyG?Xk6 zU6oza^%_>x15!*N2>n4+8mXk%#Y+ha87$1yxWDC(sw^L9oQ8jI;#l2>Gf6 ziG{{J&;l`oR*igdDID14_vR(UnH!uP@_u%C!%<}8|6;xLydUK8sVDFrGyrDz2R;9x zTf#~yVc<}_#_#p|5Wt!0Bxc@k?OifNx7u$trhkIsVhwz47Ya>7=l6nt&fNGtxp_e5 z?dFQOSgxB=Yrn?ck9gS2sjgsEMKu+h1p^`A=5UBz603lJOs9(3CaM9$b3@7Ueae>2 zN00ihkmZXg2ZsY^Iew6?lFc*iD1)g$(w3H0&T%LF5t@mG%;y?Xlq7`B9* z0t1EN3&}>Vf*Tf(Fa04J1+J9am@appGKL?@?ei*1JIY^wY=sc9h&gus=n?yJDj{Sb z=_m2JPNgcg!Q;^k833{ImDB8;Z*J@3SVnVDCa7r5^YJ{pBw+pg zea=gC#Va8Y`xjwnV5)!lgQ$BiUz5N!s;AgbGT2O&&Q)&gqQmxw&4}aa*GR<#=#kD} z)1>Piq!*D;=dq)d#WqaST!fsewRNB}?xlY*_G!OmQ_6>OvIyvI`FJ`NV9cIQNE?obSV-eBW;kV-NRtR1bc5^ymbolr1}SVS7e>G z1>mMqF?kbp*lE9K9BPP-6Z#8wZt0plfCmFN3gF<^3ujpAvSXo$IOz{@yOBC za(o@}pJ1FaKmH5<7_{vlfr-t}|HqEkivZnP4>{m<-v8Iq`byySy^Gyap@AN{hI{OSOk%4oEZre8up7(+HQ7GAuZw)oX9PXUBr;}g_t+vhCJBf&p( zDK#dq*(IPo7uZg@ByveDpOP>O1h**X2Y&f#2xQ>*BH3-~T*xovB<7vAGWB9-;@|9s zh?v@9`>u~yYMeFBpF1Y$=G9C7Ae@Wgn|kYDE8C7xRJ6%!*G(WvK_Oc^ChI}M{h`g2 zCNQ#6>#+z9;25T=_p=V83MM&JEAqx#wm2Z z?ZO=5mpo2?KwYE5oqEAoEgo-HK@q1V-bI=K7|bMg;ff)#?l`q|J3eJFE_2`bcHw9T z$(|Q-mNKZ~tW9xvN1yzXj{6_9{I~i#4x33n2~? zay4D{{JfP~`NP*Pc?GqrhqFC&Mez6lXX{ej7@fz=sDjz7JF$;^bS}_kEi-)FAGtG{ za=*`330dB8cUaKlPYja-i|0*lH_)-z`I!{WCR~1;PDv|#B$OgO$>N09KJ&Mrfy1s) z{^33Cr&%?p_`R!pG9MwkNccJ<21P-UoTkcL7QF&-!sO648XEzpk%d zp76;L{Pw*E|Vj>d9eBV#2~Lt>G2v~v1qWB=bzl4SaV+kuzV7%?o3rfj8Z{o^i_MziMTrkXQb!_9)0W%ou8du!{4_L6T6 zM@72Xn)}PlXASFoV`?d$Qybk&^>@#=qck&DuLjevZ_G13Xw&Tp5oXLdv9SAnPZ@45 z){b|t%y!S9Og0{e2T4w7wkBB{-HgFL=O+3l#0(c!sA?R=v*I9)CQX}t)~_L|HfOUV zW+lOMHcU2|8NW?X^aS+aNbUSxDdoA4sfmMKAIHo9NLZF98 zkQ=KEKWx)Dd$5P063tB*M>{mphw`uL6iJycBZ`|e4q+t41V>Nk=3?+WD*Y@@;YD8+ zjHXS1%{tq0PjI#$dr0&?pOzTbS~_`pAw>FcuaJxo69#I+D{ zW>1_iv|*bRw~y0jo{1vspzHO+&BAeqc+Ns{2P@?p7w1(5*o3aN8+By;^yz(a+(M=mtvddwj&^|5i1_~&9G%uiED*A<$%cR{y^h(&?0c-y9* zp2jn?ytcz++Zz(wOD4tWVrVj-&=(lsEIN%ZzgH6#Xd?ae%xk*04#99Mm2VzL!O@v+ zQUkdiQ_Ez-{xlS^y___(#m=AK*siop9{vy%y?o&^3D!NAx@U%Rn|i-1nG9nzhV#zS zMzex)ov-D2oqps}vdU@yOPnN&^NMP<9X&y*9MCZB#O_BgPk?yNVval|TAgO~xTV43 zbISA8$3=pg?zGn8r=DI>Veg0;g|S*KXEJEXsadCAxhN?kFnf4}>nG*6fcd$rCY@<2 zTZ^jRRkPP*c3D+W_AnZ$ClT!U7)i_p`l9^W3qOfgkmghVSk~o%%{2lm(GX*$OG%Sy ztiGM@MJF*x!iJ6vI~LMqLNB|vpQ4|Zm7s{jE64KhD@^7Elh{Pl`42(@K}ZXohhvZ} z`zTa*e}ipY>rlD*X$DLKQR>Qd-JPnBi-~E1aV^R59rUF+#164e zs?iqNGpKBr1>Z_u!l|;FZephU15|5|9Bs}b_&*^`S}S)zQ?-eJQ=O^k%`Yp(R^fR^CmM-PdBU z{3NMcbB;p02S>&V}^Ra|9kJLW@N>Z&vOXiJ&? z@RV;eOI*_r@o{xmeInm4dVTb}H=4xhIVT%yYW?Zs=27peU+>WiOE;gL{xpFMqjS^m zQyY6`NdAEjpFd6e_n_&AE@xGavfqjFS~@mWipA&UP~HTdNHK_2Fngl z_jJ5|4|hfaQr&dS;FBv-6EV=sFP*u|U}ObU)T@k`jmWu(PYEC9@TYq`&pfOn zgrkzrWZv*mbJ5)`D;h#)rjkqam!OC$&s2$G>k8eR_+DQsctBi|xb)+~Rn3KC`}3zk zj+z=?Z77_2pzZb3;$IRr39?rDDMLuei&fhsT zk1F`;s?t&qh-kVEn|B(cr9{R26!NT2Scle+MrD41hhx;~9=7A!X%a#AJUDgLU8^$@ zL+TWERJsn8VbG%a`xgA^uMt@r(X}fb*;_77t)(tpEAqLF9KIK9BMLYzt zkOt1(H$jXK?!#lSDg7F(geN;n^}&x{ZM&g7hlbY(5$7SUn3Tbc!j*zXa$7Kounl5R z3Q#_xk0t&pko5gTeLh!H@I^t|$h>nxm#ZXTn}p749?%5bhqI!HOzROnEAAvTmnayo zrZ=|-ntNUk{trL7cWx7!XuhD5xD&&PsWehG7x%Sl4GHCTEj(q(3fx*h^(<^hKhCUu z=!&lg!rl$p5}dG~BDE3nwO&3;tUF;FxE3u0V|Of;JD9ZWrHv(=T!S3@(AK}|pJOYapOGrPM zN4o7rzxpdJlo|e~g!~1#?dp}$>K=pp@`|e`qD16B<^1>xkm_Q>v=CwW2nx^(!NL~z zhk8ikeJCnuRw0zL5mh|~45C!CA}B{e?fC>J5?aPJTqck@HlbH2F)jCJewTksMK^Ac Vz&YE|q)42697t4DQp(au{|j=~O&kCK delta 15971 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 diff --git a/Reports/Thesis/verslag.synctex(busy) b/Reports/Thesis/verslag.synctex(busy) deleted file mode 100644 index e69de29..0000000 diff --git a/Reports/Thesis/verslag.toc b/Reports/Thesis/verslag.toc index 6ed818b..3052dcb 100644 --- a/Reports/Thesis/verslag.toc +++ b/Reports/Thesis/verslag.toc @@ -32,5 +32,5 @@ \contentsline {subsection}{\numberline {6.5}Policies for battery optimization}{46}{subsection.6.5}% \contentsline {subsubsection}{\numberline {6.5.1}Baselines}{46}{subsubsection.6.5.1}% \contentsline {subsubsection}{\numberline {6.5.2}Policy using generated NRV samples}{47}{subsubsection.6.5.2}% -\contentsline {section}{\numberline {7}Conclusion}{52}{section.7}% -\contentsline {section}{\numberline {A}Appendix}{57}{appendix.A}% +\contentsline {section}{\numberline {7}Conclusion}{51}{section.7}% +\contentsline {section}{\numberline {A}Appendix}{56}{appendix.A}% diff --git a/src/trainers/quantile_trainer.py b/src/trainers/quantile_trainer.py index 50a9110..1caa32f 100644 --- a/src/trainers/quantile_trainer.py +++ b/src/trainers/quantile_trainer.py @@ -637,6 +637,15 @@ class NonAutoRegressiveQuantileRegression(Trainer): task.get_logger().report_single_value( name=metric_name, value=metric_value ) + + if train == False: + crps_from_samples_metric, self.test_set_samples = ( + self.calculate_crps_from_samples(None, dataloader, None) + ) + task.get_logger().report_single_value( + name="test_CRPS_from_samples_transformed", + value=np.mean(crps_from_samples_metric), + ) def debug_plots(self, task, train: bool, data_loader, sample_indices, epoch): for actual_idx, idx in sample_indices.items(): @@ -846,6 +855,7 @@ class NonAutoRegressiveQuantileRegression(Trainer): targets = targets.squeeze(-1) targets = targets[0].unsqueeze(0) targets = self.data_processor.inverse_transform(targets) + targets = targets.to(self.device) samples = samples.to(self.device) @@ -871,8 +881,8 @@ class NonAutoRegressiveQuantileRegression(Trainer): initial_penalty=900, target_charge_cycles=58 * 400 / 356, initial_learning_rate=5, - max_iterations=100, - tolerance=1, + max_iterations=30, + tolerance=2, iteration=epoch, ) ) @@ -907,6 +917,8 @@ class NonAutoRegressiveQuantileRegression(Trainer): generated_samples, ) + return np.mean(crps_from_samples_metric), generated_samples + def plot_quantile_percentages( self, task, diff --git a/src/training_scripts/autoregressive_quantiles.py b/src/training_scripts/autoregressive_quantiles.py index 5a31e04..5648aa6 100644 --- a/src/training_scripts/autoregressive_quantiles.py +++ b/src/training_scripts/autoregressive_quantiles.py @@ -44,7 +44,7 @@ data_config.NOMINAL_NET_POSITION = True data_config = task.connect(data_config, name="data_features") -data_processor = DataProcessor(data_config, path="", lstm=True) +data_processor = DataProcessor(data_config, path="", lstm=False) data_processor.set_batch_size(512) data_processor.set_full_day_skip(False) diff --git a/src/training_scripts/non_autoregressive_quantiles.py b/src/training_scripts/non_autoregressive_quantiles.py index bcb3014..2656d30 100644 --- a/src/training_scripts/non_autoregressive_quantiles.py +++ b/src/training_scripts/non_autoregressive_quantiles.py @@ -2,10 +2,10 @@ from src.utils.clearml import ClearMLHelper #### ClearML #### clearml_helper = ClearMLHelper( - project_name="Thesis/NAQR: Non Linear (4 - 256) + Load + PV + Wind + NP" + project_name="Thesis/NrvForecast" ) task = clearml_helper.get_task( - task_name="NAQR: Non Linear (4 - 256) + Load + PV + Wind + NP" + task_name="NAQR: Non Linear (2 - 512)" ) task.execute_remotely(queue_name="default", exit_process=True) @@ -30,17 +30,17 @@ from src.models.time_embedding_layer import TimeEmbedding #### Data Processor #### data_config = DataConfig() -data_config.NRV_HISTORY = True -data_config.LOAD_HISTORY = True -data_config.LOAD_FORECAST = True +data_config.NRV_HISTORY = False +data_config.LOAD_HISTORY = False +data_config.LOAD_FORECAST = False -data_config.WIND_FORECAST = True -data_config.WIND_HISTORY = True +data_config.WIND_FORECAST = False +data_config.WIND_HISTORY = False -data_config.PV_FORECAST = True -data_config.PV_HISTORY = True +data_config.PV_FORECAST = False +data_config.PV_HISTORY = False -data_config.NOMINAL_NET_POSITION = True +data_config.NOMINAL_NET_POSITION = False data_config = task.connect(data_config, name="data_features") @@ -53,7 +53,7 @@ data_processor.set_full_day_skip(True) #### Hyperparameters #### data_processor.set_output_size(96) inputDim = data_processor.get_input_size() -epochs = 300 +epochs = 5 # add parameters to clearml quantiles = task.get_parameter("general/quantiles", cast=True) @@ -69,7 +69,7 @@ else: model_parameters = { "learning_rate": 0.0001, "hidden_size": 512, - "num_layers": 8, + "num_layers": 2, "dropout": 0.2, } @@ -111,15 +111,15 @@ trainer = NonAutoRegressiveQuantileRegression( data_processor, quantiles, "cuda", - policy_evaluator=None, + policy_evaluator=policy_evaluator, debug=False, ) trainer.add_metrics_to_track( [PinballLoss(quantiles), MSELoss(), L1Loss(), CRPSLoss(quantiles)] ) -trainer.early_stopping(patience=5) -trainer.plot_every(20) +trainer.early_stopping(patience=8) +trainer.plot_every(4) trainer.train(task=task, epochs=epochs, remotely=True) ### Policy Evaluation ### @@ -138,7 +138,7 @@ optimal_penalty, profit, charge_cycles = ( test_loader=test_loader, initial_penalty=1000, target_charge_cycles=283, - learning_rate=15, + initial_learning_rate=15, max_iterations=150, tolerance=1, )