Updated thesis

This commit is contained in:
2024-05-13 10:08:47 +02:00
parent bc33b0368d
commit 56d56446fa
17 changed files with 248 additions and 107 deletions

View File

@@ -45,3 +45,51 @@
short = NP, short = NP,
long = Implicit Net Position long = Implicit Net Position
} }
\DeclareAcronym{TSO}{
short = TSO,
long = Transmission System Operator
}
\DeclareAcronym{DSO}{
short = DSO,
long = Distribution System Operator
}
\DeclareAcronym{BRP}{
short = BRP,
long = Balance Responsible Party,
short-plural = s,
long-plural = ies
}
\DeclareAcronym{BSP}{
short = BSP,
long = Balancing Service Provider,
short-plural = s,
}
\DeclareAcronym{SI}{
short = SI,
long = System Imbalance
}
\DeclareAcronym{FCR}{
short = FCR,
long = Frequency Containment Reserve
}
\DeclareAcronym{aFRR}{
short = aFRR,
long = Automatic Frequency Restoration
}
\DeclareAcronym{mFRR}{
short = mFRR,
long = Manual Frequency Restoration
}
\DeclareAcronym{MW}{
short = MW,
long = Megawatt
}

View File

@@ -162,7 +162,16 @@
\setcounter{g@acro@MSE@int}{4} \setcounter{g@acro@MSE@int}{4}
\setcounter{g@acro@MAE@int}{4} \setcounter{g@acro@MAE@int}{4}
\setcounter{g@acro@CRPS@int}{2} \setcounter{g@acro@CRPS@int}{2}
\setcounter{g@acro@NRV@int}{9} \setcounter{g@acro@NRV@int}{14}
\setcounter{g@acro@PV@int}{0} \setcounter{g@acro@PV@int}{0}
\setcounter{g@acro@NP@int}{0} \setcounter{g@acro@NP@int}{0}
\setcounter{g@acro@TSO@int}{2}
\setcounter{g@acro@DSO@int}{0}
\setcounter{g@acro@BRP@int}{1}
\setcounter{g@acro@BSP@int}{1}
\setcounter{g@acro@SI@int}{1}
\setcounter{g@acro@FCR@int}{1}
\setcounter{g@acro@aFRR@int}{1}
\setcounter{g@acro@mFRR@int}{1}
\setcounter{g@acro@MW@int}{1}
} }

View File

@@ -4,6 +4,16 @@
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Overview of the most important parties in the electricity market\relax }}{3}{table.caption.1}\protected@file@percent } \@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Overview of the most important parties in the electricity market\relax }}{3}{table.caption.1}\protected@file@percent }
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
\newlabel{tab:parties}{{1}{3}{Overview of the most important parties in the electricity market\relax }{table.caption.1}{}} \newlabel{tab:parties}{{1}{3}{Overview of the most important parties in the electricity market\relax }{table.caption.1}{}}
\ACRO{recordpage}{BRP}{4}{1}{3}
\ACRO{recordpage}{NRV}{5}{1}{4}
\ACRO{recordpage}{SI}{5}{1}{4}
\ACRO{recordpage}{NRV}{5}{1}{4}
\ACRO{recordpage}{TSO}{5}{1}{4}
\ACRO{recordpage}{FCR}{5}{1}{4}
\ACRO{recordpage}{BSP}{5}{1}{4}
\ACRO{recordpage}{aFRR}{5}{1}{4}
\ACRO{recordpage}{mFRR}{5}{1}{4}
\ACRO{recordpage}{MW}{6}{1}{5}
\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Prices paid by the BRPs\relax }}{5}{table.caption.2}\protected@file@percent } \@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Prices paid by the BRPs\relax }}{5}{table.caption.2}\protected@file@percent }
\newlabel{tab:imbalance_price}{{2}{5}{Prices paid by the BRPs\relax }{table.caption.2}{}} \newlabel{tab:imbalance_price}{{2}{5}{Prices paid by the BRPs\relax }{table.caption.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Generative modeling}{5}{section.3}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3}Generative modeling}{5}{section.3}\protected@file@percent }
@@ -25,7 +35,7 @@
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }}{12}{figure.caption.6}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }}{12}{figure.caption.6}\protected@file@percent }
\newlabel{fig:diffusion_example}{{4}{12}{Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }{figure.caption.6}{}} \newlabel{fig:diffusion_example}{{4}{12}{Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }{figure.caption.6}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}Generation process}{12}{subsubsection.3.4.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}Generation process}{12}{subsubsection.3.4.3}\protected@file@percent }
\newlabel{fig:diffusion_process}{{\caption@xref {fig:diffusion_process}{ on input line 281}}{14}{Generation process}{figure.caption.7}{}} \newlabel{fig:diffusion_process}{{\caption@xref {fig:diffusion_process}{ on input line 283}}{14}{Generation process}{figure.caption.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Evaluation}{14}{subsection.3.5}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Evaluation}{14}{subsection.3.5}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Visualization of the CRPS metric\relax }}{16}{figure.caption.8}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Visualization of the CRPS metric\relax }}{16}{figure.caption.8}\protected@file@percent }
\newlabel{fig:crps_visualization}{{5}{16}{Visualization of the CRPS metric\relax }{figure.caption.8}{}} \newlabel{fig:crps_visualization}{{5}{16}{Visualization of the CRPS metric\relax }{figure.caption.8}{}}
@@ -186,7 +196,16 @@
\setcounter{g@acro@MSE@int}{0} \setcounter{g@acro@MSE@int}{0}
\setcounter{g@acro@MAE@int}{0} \setcounter{g@acro@MAE@int}{0}
\setcounter{g@acro@CRPS@int}{0} \setcounter{g@acro@CRPS@int}{0}
\setcounter{g@acro@NRV@int}{0} \setcounter{g@acro@NRV@int}{5}
\setcounter{g@acro@PV@int}{0} \setcounter{g@acro@PV@int}{0}
\setcounter{g@acro@NP@int}{0} \setcounter{g@acro@NP@int}{0}
\setcounter{g@acro@TSO@int}{2}
\setcounter{g@acro@DSO@int}{0}
\setcounter{g@acro@BRP@int}{1}
\setcounter{g@acro@BSP@int}{1}
\setcounter{g@acro@SI@int}{1}
\setcounter{g@acro@FCR@int}{1}
\setcounter{g@acro@aFRR@int}{1}
\setcounter{g@acro@mFRR@int}{1}
\setcounter{g@acro@MW@int}{1}
} }

View File

@@ -6,7 +6,7 @@
% - TODO: Achtergrond RNN? % - TODO: Achtergrond RNN?
\section{Electricity market} \section{Electricity market}
The electricity market consists of many different parties who all work together and want to make a profit in the end. An overview of the most important parties can be found in Table \ref{tab:parties}. The electricity market consists of many different parties who all work together and want to make a profit in the end. An overview of the most important parties can be found in Table \ref{tab:parties}. Each of them has a different role in the market.
% table % table
\begin{table}[h] \begin{table}[h]
@@ -19,38 +19,40 @@ The electricity market consists of many different parties who all work together
\hline \hline
Consumers & Uses electricity. This can be normal households, companies but also industry. \\ Consumers & Uses electricity. This can be normal households, companies but also industry. \\
\hline \hline
Transmission system operator (TSO) & Party responsible for reliable transmission of electricity from generation plants to local distribution networks. This is done over the high-voltage grid. In Belgium, this party is Elia.\\ \acf{TSO} & Party responsible for reliable transmission of electricity from generation plants to local distribution networks. This is done over the high-voltage grid. In Belgium, this party is Elia.\\
\hline \hline
Distribution system operator (DSO) & Party responsible for the distribution of electricity to the end users. Here, the electricity is transported over the low-voltage grid. \\ \acf{DSO} & Party responsible for the distribution of electricity to the end users. Here, the electricity is transported over the low-voltage grid. \\
\hline \hline
Balancing responsible party (BRP) & These parties forecast the electricity consumption and generation of their clients. They make balanced nominations to Elia. \acf{BRP} & These parties forecast the electricity consumption and generation of their clients. They make balanced nominations to Elia.
\\ \\
\hline \hline
Balancing Service Provider (BSP) & Parties that provide the TSO (Elia) with balancing services. They submit Balancing Energy Bids to Elia. If needed, they will provide balancing energy at a set price. \\ \acf{BSP} & Parties that provide the \ac{TSO} (Elia) with balancing services. They submit Balancing Energy Bids to Elia. If needed, they will provide balancing energy at a set price. \\
\hline \hline
\end{tabularx} \end{tabularx}
\caption{Overview of the most important parties in the electricity market} \caption{Overview of the most important parties in the electricity market}
\label{tab:parties} \label{tab:parties}
\end{table} \end{table}
Elia, the Transmission system operator (TSO) in Belgium is responsible for keeping the grid stable. They do this by balancing the electricity consumption and generation. If there is an imbalance, Elia will use reserves to balance the grid. These reserves are expensive and are paid by the market participants. The prices paid for the activations of these reserves is called the imbalance price. Keeping the grid balanced is a very important but also a very difficult task. If the grid is not balanced, it can lead to blackouts but also other problems like damage to equipment and so on. The most important aspect of the electricity market is that the grid needs to be balanced at all times. This means that the amount of electricity consumed and generated must be equal at all times. If this is not the case, the grid can become unstable which can lead to blackouts and disrupt equipment. One company is responsible for keeping the grid balanced. This company is called the Transmission System Operator (TSO). In Belgium, this party is Elia. The TSO keeps the grid balanced by activating reserves when needed. These reserves, however, are expensive and need to be paid by the market participants. The prices paid for the activations of these reserves are called the imbalance price.
Balance responsible parties (BRPs) forecast the electricity consumption and generation of their portfolio to effectively manage the balance between supply and demand within the grid they operate in. They submit a daily balance schedule for their portfolio the day before to the transmission system operator. This consists of the expected physical injections and offtakes from the grid and the commercial power trades. The power trades can be purchases and sales between BRPs or they can even be trades with other countries. BRPs must provide and deploy all reasonable resources to be balanced on a quarter-hourly basis. They can exchange electricity with other BRPs for the following day or the same day. There is one exception where a BRP can deviate from the balance schedule. This is when the grid is not balanced and they can help Elia to stabilize the grid. In this case, they will receive a compensation for their help. When a BRP deviates from the balance schedule in a way that destabilizes the grid, it will need to pay the imbalance price for the deviation. At every access point of the grid, there is a designated \acf{BRP}. This party may be a producer, major consumer, energy supplier or trader.
The imbalance price is determined based on which reserves Elia needs to activate to stabilize the grid. The imbalance of a BRP is the quarter-hourly difference between total injections and offtakes from the grid. The Net Regulation Volume (NRV) is the net control volume of energy that Elia applies to maintain balance in the Elia control area. The Area Control Error is the current difference between the scheduled values and the actual values of power exchanged in the Belgian control area. The imbalance of the system (SI) is the Area Control Error minus the NRV. Using the System Imbalance, the imbalance price is calculated. Balance Responsible Parties (BRPs) forecast the electricity consumption and generation of their portfolio to effectively manage the balance between supply and demand within the grid they operate in. They submit a daily balance schedule for their portfolio the day before to the transmission system operator. This consists of the expected physical injections and offtakes from the grid and the commercial power trades. The power trades can be purchases and sales between BRPs or they can even be traded with other countries. BRPs must provide and deploy all reasonable resources to be balanced on a quarter-hourly basis. They can exchange electricity with other BRPs for the following day or the same day. There is one exception where a BRP can deviate from the balance schedule. This is when the grid is not balanced and they can help Elia to stabilize the grid. In this case, they will receive compensation for their help. When a BRP deviates from the balance schedule in a way that destabilizes the grid, it will need to pay the imbalance price for the deviation.
Elia, the Transmission System Operator (TSO) in Belgium, maintains grid stability by activating three types of reserves, each designed to address specific conditions of imbalance. These reserves are crucial for ensuring that the electricity supply continuously meets the demand, thereby maintaining the frequency within the required operational limits. The reserves include: The imbalance price is determined based on which reserves Elia needs to activate to stabilize the grid. The imbalance of a BRP is the quarter-hourly difference between total injections and offtakes from the grid. The \ac{NRV} is the net control volume of energy that Elia applies to maintain balance in the Elia control area. The Area Control Error is the current difference between the scheduled values and the actual values of power exchanged in the Belgian control area. The \acf{SI} is the Area Control Error minus the \ac{NRV}. Using the System Imbalance, the imbalance price is calculated.
1) \textbf{Frequency Containment Reserve (FCR)} \\ Elia, the \acf{TSO} in Belgium, maintains grid stability by activating three types of reserves, each designed to address specific conditions of imbalance. These reserves are crucial for ensuring that the electricity supply continuously meets the demand, thereby maintaining the frequency within the required operational limits. The reserves include:
FCR is a reserve that responds automatically to frequency deviations in the grid. The reserve responds automatically in seconds and provides a proportional response to the frequency deviation. Elia must provide a minimal share of this volume within the Belgian control area. This type of volume can also be offered by the BSPs.
2) \textbf{Automatic Frequency Restoration Process (aFRR)} \\ 1) \textbf{ \acf{FCR}} \\
FCR is a reserve that responds automatically to frequency deviations in the grid. The reserve responds automatically in seconds and provides a proportional response to the frequency deviation. Elia must provide a minimal share of this volume within the Belgian control area. This type of volume can also be offered by the \acsp{BSP}.
2) \textbf{ \acf{aFRR}} \\
aFRR is the second reserve that Elia can activate to restore the frequency to 50Hz. The aFRR is activated when the FCR is not sufficient to restore the frequency. Every 4 seconds, Elia sends a set-point to the BSPs. The BSPs use this set-point to adjust their production or consumption. The BSPs have a 7.5-minute window to activate the full requested energy volume. aFRR is the second reserve that Elia can activate to restore the frequency to 50Hz. The aFRR is activated when the FCR is not sufficient to restore the frequency. Every 4 seconds, Elia sends a set-point to the BSPs. The BSPs use this set-point to adjust their production or consumption. The BSPs have a 7.5-minute window to activate the full requested energy volume.
3) \textbf{Manual Frequency Restoration (mFRR)} \\ 3) \textbf{ \acf{mFRR}} \\
Sometimes the FCR and aFRR are not enough to restore the imbalance between generation and consumption. Elia activates the mFRR manually and the requested energy volume is to be activated in 15 minutes. Sometimes the FCR and aFRR are not enough to restore the imbalance between generation and consumption. Elia activates the mFRR manually and the requested energy volume is to be activated in 15 minutes.
The order in which the reserves are activated is as follows: FCR, aFRR and mFRR. BSPs provide bids for the aFRR and mFRR volumes. The provided bids consist of the type (aFRR or mFRR), bid volume (MW), bid price (per MWh) and start price (per MWh). The order in which the reserves are activated is as follows: FCR, aFRR and mFRR. BSPs provide bids for the aFRR and mFRR volumes. The provided bids consist of the type (aFRR or mFRR), bid volume (\acs{MW}), bid price (per MWh) and start price (per MWh).
The start price is used to cover the costs of starting a unit. The start price is used to cover the costs of starting a unit.
Elia selects the bids based on the order of activation and then the price. The highest marginal price paid for upward or downward activation determines the imbalance price. This means that the last bid that is activated determines the imbalance price. This price is paid by the BRPs that are not balanced. The imbalance price calculation is shown in Table \ref{tab:imbalance_price}. Elia selects the bids based on the order of activation and then the price. The highest marginal price paid for upward or downward activation determines the imbalance price. This means that the last bid that is activated determines the imbalance price. This price is paid by the BRPs that are not balanced. The imbalance price calculation is shown in Table \ref{tab:imbalance_price}.

View File

@@ -1,6 +1,10 @@
\relax \relax
\providecommand\hyper@newdestlabel[2]{} \providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}{section.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}{section.1}\protected@file@percent }
\ACRO{recordpage}{TSO}{3}{1}{2}
\ACRO{recordpage}{NRV}{3}{1}{2}
\ACRO{recordpage}{NRV}{3}{1}{2}
\ACRO{recordpage}{NRV}{3}{1}{2}
\@setckpt{sections/introduction}{ \@setckpt{sections/introduction}{
\setcounter{page}{3} \setcounter{page}{3}
\setcounter{equation}{0} \setcounter{equation}{0}
@@ -158,7 +162,16 @@
\setcounter{g@acro@MSE@int}{0} \setcounter{g@acro@MSE@int}{0}
\setcounter{g@acro@MAE@int}{0} \setcounter{g@acro@MAE@int}{0}
\setcounter{g@acro@CRPS@int}{0} \setcounter{g@acro@CRPS@int}{0}
\setcounter{g@acro@NRV@int}{0} \setcounter{g@acro@NRV@int}{3}
\setcounter{g@acro@PV@int}{0} \setcounter{g@acro@PV@int}{0}
\setcounter{g@acro@NP@int}{0} \setcounter{g@acro@NP@int}{0}
\setcounter{g@acro@TSO@int}{1}
\setcounter{g@acro@DSO@int}{0}
\setcounter{g@acro@BRP@int}{0}
\setcounter{g@acro@BSP@int}{0}
\setcounter{g@acro@SI@int}{0}
\setcounter{g@acro@FCR@int}{0}
\setcounter{g@acro@aFRR@int}{0}
\setcounter{g@acro@mFRR@int}{0}
\setcounter{g@acro@MW@int}{0}
} }

View File

@@ -1,7 +1,7 @@
\section{Introduction} \section{Introduction}
The electricity market is a complex system influenced by numerous factors. The rise of renewable energy sources adds to this complexity, introducing greater volatility compared to traditional energy sources. Renewables, with their unpredictable nature, exacerbate the challenge of maintaining a stable balance between supply and demand. This critical balance is managed by the transmission system operator, Elia, which utilizes reserves to mitigate any potential shortages or surpluses, directly influencing electricity prices. The electricity market is a complex system influenced by numerous factors. The rise of renewable energy sources adds to this complexity, introducing greater volatility compared to traditional energy sources. Renewables, with their unpredictable nature, exacerbate the challenge of maintaining a stable balance between supply and demand. This critical balance is managed by the \ac{TSO}, Elia in Belgium, which utilizes reserves to mitigate any potential shortages or surpluses, directly influencing electricity prices.
(TODO: Market participants met flexible assets (Groot genoeg), zij willen grote winst maken. Elia moet minder eigen reserves gebruiken -> goedkoper voor iedereen) Market participants with big enough flexible assets (eg. industrial batteries) can help keep the grid stable. This helps Elia to use fewer of its reserves, which in turn makes the system cheaper for everyone. The market participants are then paid for their services by Elia. The main goal of the market participants is not to help stabilize the grid, but to make a profit. They can do this by buying electricity when it is cheap and selling it when Elia pays a high price for it.
Forecasting the imbalance price is vital for market participants engaged in buying or selling electricity. It enables them to make informed decisions on the optimal times to buy or sell, aiming to maximize their profits. However, current industry practices often rely on simplistic policies, such as adhering to a fixed price for transactions. This approach is not optimal and overlooks the potential benefits of adaptive policies that consider the forecasted imbalance prices. Forecasting the imbalance price is vital for market participants engaged in buying or selling electricity. It enables them to make informed decisions on the optimal times to buy or sell, aiming to maximize their profits. However, current industry practices often rely on simplistic policies, such as adhering to a fixed price for transactions. This approach is not optimal and overlooks the potential benefits of adaptive policies that consider the forecasted imbalance prices.
@@ -9,4 +9,4 @@ The goal of this thesis is to generatively model the Belgian electricity market.
Forecasting the system imbalance will become increasingly important as the share of renewable energy sources continues to grow. Forecasting the system imbalance will become increasingly important as the share of renewable energy sources continues to grow.
This thesis can be divided into two main parts. The first part focuses on modeling the Net Regulation Volume (NRV) of the Belgian electricity market for the next day. This modeling is conditioned on multiple inputs that can be obtained from Elia (TODO: add citation to the open data of Elia). The second part of the thesis focuses on optimizing a simple policy using the NRV generations for the next day. The policy tries to maximize profit by charging and discharging a battery and thereby buying and selling electricity on the market. Multiple models are trained and tested to model the NRV and compared to each other based on their profit optimization. This thesis can be divided into two main parts. The first part focuses on modeling the \ac{NRV} of the Belgian electricity market for the next day. This modeling is conditioned on multiple inputs that can be obtained from data provided by Elia. The second part of the thesis focuses on optimizing a simple policy using the \ac{NRV} generations for the next day. The policy tries to maximize profit by charging and discharging a battery and thereby buying and selling electricity on the market. Multiple models are trained and tested to model the \ac{NRV} and compared to each other based on their profit optimization.

View File

@@ -160,7 +160,16 @@
\setcounter{g@acro@MSE@int}{0} \setcounter{g@acro@MSE@int}{0}
\setcounter{g@acro@MAE@int}{0} \setcounter{g@acro@MAE@int}{0}
\setcounter{g@acro@CRPS@int}{0} \setcounter{g@acro@CRPS@int}{0}
\setcounter{g@acro@NRV@int}{0} \setcounter{g@acro@NRV@int}{5}
\setcounter{g@acro@PV@int}{0} \setcounter{g@acro@PV@int}{0}
\setcounter{g@acro@NP@int}{0} \setcounter{g@acro@NP@int}{0}
\setcounter{g@acro@TSO@int}{2}
\setcounter{g@acro@DSO@int}{0}
\setcounter{g@acro@BRP@int}{1}
\setcounter{g@acro@BSP@int}{1}
\setcounter{g@acro@SI@int}{1}
\setcounter{g@acro@FCR@int}{1}
\setcounter{g@acro@aFRR@int}{1}
\setcounter{g@acro@mFRR@int}{1}
\setcounter{g@acro@MW@int}{1}
} }

View File

@@ -161,7 +161,16 @@
\setcounter{g@acro@MSE@int}{0} \setcounter{g@acro@MSE@int}{0}
\setcounter{g@acro@MAE@int}{0} \setcounter{g@acro@MAE@int}{0}
\setcounter{g@acro@CRPS@int}{0} \setcounter{g@acro@CRPS@int}{0}
\setcounter{g@acro@NRV@int}{0} \setcounter{g@acro@NRV@int}{5}
\setcounter{g@acro@PV@int}{0} \setcounter{g@acro@PV@int}{0}
\setcounter{g@acro@NP@int}{0} \setcounter{g@acro@NP@int}{0}
\setcounter{g@acro@TSO@int}{2}
\setcounter{g@acro@DSO@int}{0}
\setcounter{g@acro@BRP@int}{1}
\setcounter{g@acro@BSP@int}{1}
\setcounter{g@acro@SI@int}{1}
\setcounter{g@acro@FCR@int}{1}
\setcounter{g@acro@aFRR@int}{1}
\setcounter{g@acro@mFRR@int}{1}
\setcounter{g@acro@MW@int}{1}
} }

Binary file not shown.

View File

@@ -135,14 +135,31 @@
\ACRO{usage}{MSE=={4}} \ACRO{usage}{MSE=={4}}
\ACRO{usage}{MAE=={4}} \ACRO{usage}{MAE=={4}}
\ACRO{usage}{CRPS=={2}} \ACRO{usage}{CRPS=={2}}
\ACRO{usage}{NRV=={9}} \ACRO{usage}{NRV=={14}}
\ACRO{usage}{PV=={0}} \ACRO{usage}{PV=={0}}
\ACRO{usage}{NP=={0}} \ACRO{usage}{NP=={0}}
\ACRO{usage}{TSO=={2}}
\ACRO{usage}{DSO=={0}}
\ACRO{usage}{BRP=={1}}
\ACRO{usage}{BSP=={1}}
\ACRO{usage}{SI=={1}}
\ACRO{usage}{FCR=={1}}
\ACRO{usage}{aFRR=={1}}
\ACRO{usage}{mFRR=={1}}
\ACRO{usage}{MW=={1}}
\ACRO{pages}{BRP=={}}
\ACRO{pages}{SI=={5@1@4}}
\ACRO{pages}{TSO=={3@1@2|5@1@4}}
\ACRO{pages}{FCR=={5@1@4}}
\ACRO{pages}{BSP=={5@1@4}}
\ACRO{pages}{aFRR=={5@1@4}}
\ACRO{pages}{mFRR=={5@1@4}}
\ACRO{pages}{MW=={5@1@4}}
\ACRO{pages}{NAQR=={42@1@41}} \ACRO{pages}{NAQR=={42@1@41}}
\ACRO{pages}{CRPS=={41@1@40|42@1@41}} \ACRO{pages}{CRPS=={41@1@40|42@1@41}}
\ACRO{pages}{MSE=={41@1@40|42@1@41}} \ACRO{pages}{MSE=={41@1@40|42@1@41}}
\ACRO{pages}{MAE=={41@1@40|42@1@41}} \ACRO{pages}{MAE=={41@1@40|42@1@41}}
\ACRO{pages}{NRV=={44@1@43|45@1@44}} \ACRO{pages}{NRV=={3@1@2|5@1@4|44@1@43|45@1@44}}
\abx@aux@read@bbl@mdfivesum{5DC935CC8C8FAB8A3CAF97A486ED2386} \abx@aux@read@bbl@mdfivesum{5DC935CC8C8FAB8A3CAF97A486ED2386}
\abx@aux@read@bblrerun \abx@aux@read@bblrerun
\abx@aux@defaultrefcontext{0}{dumas_deep_2022}{nyt/global//global/global} \abx@aux@defaultrefcontext{0}{dumas_deep_2022}{nyt/global//global/global}

View File

@@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 11 MAY 2024 21:48 This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 13 MAY 2024 10:03
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
file:line:error style messages enabled. file:line:error style messages enabled.
@@ -1079,6 +1079,15 @@ Package: ulem 2019/11/18
\c@g@acro@NRV@int=\count489 \c@g@acro@NRV@int=\count489
\c@g@acro@PV@int=\count490 \c@g@acro@PV@int=\count490
\c@g@acro@NP@int=\count491 \c@g@acro@NP@int=\count491
\c@g@acro@TSO@int=\count492
\c@g@acro@DSO@int=\count493
\c@g@acro@BRP@int=\count494
\c@g@acro@BSP@int=\count495
\c@g@acro@SI@int=\count496
\c@g@acro@FCR@int=\count497
\c@g@acro@aFRR@int=\count498
\c@g@acro@mFRR@int=\count499
\c@g@acro@MW@int=\count500
) )
Package csquotes Info: Checking for multilingual support... Package csquotes Info: Checking for multilingual support...
Package csquotes Info: ... found 'babel' package. Package csquotes Info: ... found 'babel' package.
@@ -1167,16 +1176,16 @@ LaTeX Font Info: ... okay on input line 133.
(/usr/local/texlive/2023/texmf-dist/tex/context/base/mkii/supp-pdf.mkii (/usr/local/texlive/2023/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).] [Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count492 \scratchcounter=\count501
\scratchdimen=\dimen333 \scratchdimen=\dimen333
\scratchbox=\box77 \scratchbox=\box77
\nofMPsegments=\count493 \nofMPsegments=\count502
\nofMParguments=\count494 \nofMParguments=\count503
\everyMPshowfont=\toks50 \everyMPshowfont=\toks50
\MPscratchCnt=\count495 \MPscratchCnt=\count504
\MPscratchDim=\dimen334 \MPscratchDim=\dimen334
\MPnumerator=\count496 \MPnumerator=\count505
\makeMPintoPDFobject=\count497 \makeMPintoPDFobject=\count506
\everyMPtoPDFconversion=\toks51 \everyMPtoPDFconversion=\toks51
) (/usr/local/texlive/2023/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty ) (/usr/local/texlive/2023/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
@@ -1184,8 +1193,8 @@ Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 48
(/usr/local/texlive/2023/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg (/usr/local/texlive/2023/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
)) ))
\c@mv@tabular=\count498 \c@mv@tabular=\count507
\c@mv@boldtabular=\count499 \c@mv@boldtabular=\count508
LaTeX Info: Command `\dddot' is already robust on input line 133. LaTeX Info: Command `\dddot' is already robust on input line 133.
LaTeX Info: Command `\ddddot' is already robust on input line 133. LaTeX Info: Command `\ddddot' is already robust on input line 133.
Package caption Info: Begin \AtBeginDocument code. Package caption Info: Begin \AtBeginDocument code.
@@ -1387,55 +1396,54 @@ l.149 \newpage
] [4] ] [4]
Underfull \hbox (badness 10000) in paragraph at lines 75--80 Underfull \hbox (badness 10000) in paragraph at lines 77--82
[] []
Underfull \hbox (badness 10000) in paragraph at lines 75--80 Underfull \hbox (badness 10000) in paragraph at lines 77--82
[] []
[5{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMI.enc}]
Overfull \hbox (4.77582pt too wide) in paragraph at lines 92--94 Overfull \hbox (4.77582pt too wide) in paragraph at lines 94--96
[]\T1/LinuxLibertineT-TLF/m/n/12 There ex-ist many dif-fer-ent types of gen-er-a-tive mod-els. Some of the most pop-u-lar ones are: []\T1/LinuxLibertineT-TLF/m/n/12 There ex-ist many dif-fer-ent types of gen-er-a-tive mod-els. Some of the most pop-u-lar ones are:
[] []
LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF on input line 94. LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF on input line 96.
(/usr/local/texlive/2023/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd (/usr/local/texlive/2023/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd
File: TS1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for TS1/LinuxLibertineT-TLF. File: TS1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for TS1/LinuxLibertineT-TLF.
) )
LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 12.0pt on input line 94. (Font) scaled to size 12.0pt on input line 96.
[5{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMI.enc}]
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
(Font) scaled to size 14.4pt on input line 100. (Font) scaled to size 14.4pt on input line 102.
<images/quantile_regression/cdf_quantiles_example.png, id=210, 722.7pt x 433.62pt> <images/quantile_regression/cdf_quantiles_example.png, id=210, 722.7pt x 433.62pt>
File: images/quantile_regression/cdf_quantiles_example.png Graphic file (type png) File: images/quantile_regression/cdf_quantiles_example.png Graphic file (type png)
<use images/quantile_regression/cdf_quantiles_example.png> <use images/quantile_regression/cdf_quantiles_example.png>
Package pdftex.def Info: images/quantile_regression/cdf_quantiles_example.png used on input line 107. Package pdftex.def Info: images/quantile_regression/cdf_quantiles_example.png used on input line 109.
(pdftex.def) Requested size: 364.19667pt x 218.51653pt. (pdftex.def) Requested size: 364.19667pt x 218.51653pt.
[6{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc} <./images/quantile_regression/cdf_quantiles_example.png>] [6{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc} <./images/quantile_regression/cdf_quantiles_example.png>]
<images/quantile_regression/reconstructed_cdf.png, id=222, 722.7pt x 433.62pt> <images/quantile_regression/reconstructed_cdf.png, id=221, 722.7pt x 433.62pt>
File: images/quantile_regression/reconstructed_cdf.png Graphic file (type png) File: images/quantile_regression/reconstructed_cdf.png Graphic file (type png)
<use images/quantile_regression/reconstructed_cdf.png> <use images/quantile_regression/reconstructed_cdf.png>
Package pdftex.def Info: images/quantile_regression/reconstructed_cdf.png used on input line 117. Package pdftex.def Info: images/quantile_regression/reconstructed_cdf.png used on input line 119.
(pdftex.def) Requested size: 364.19667pt x 218.51653pt. (pdftex.def) Requested size: 364.19667pt x 218.51653pt.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 8.0pt on input line 127. (Font) scaled to size 8.0pt on input line 129.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 6.0pt on input line 127. (Font) scaled to size 6.0pt on input line 129.
[7{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusEX.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusSYM.enc} <./images/quantile_regression/reconstructed_cdf.png>] [8] [9] [10] [7{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusEX.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusSYM.enc} <./images/quantile_regression/reconstructed_cdf.png>] [8] [9] [10]
<images/quantile_regression/rnn/RNN_diagram.png, id=247, 753.81625pt x 324.21124pt> <images/quantile_regression/rnn/RNN_diagram.png, id=247, 753.81625pt x 324.21124pt>
File: images/quantile_regression/rnn/RNN_diagram.png Graphic file (type png) File: images/quantile_regression/rnn/RNN_diagram.png Graphic file (type png)
<use images/quantile_regression/rnn/RNN_diagram.png> <use images/quantile_regression/rnn/RNN_diagram.png>
Package pdftex.def Info: images/quantile_regression/rnn/RNN_diagram.png used on input line 206. Package pdftex.def Info: images/quantile_regression/rnn/RNN_diagram.png used on input line 208.
(pdftex.def) Requested size: 364.19667pt x 156.63872pt. (pdftex.def) Requested size: 364.19667pt x 156.63872pt.
[11 <./images/quantile_regression/rnn/RNN_diagram.png>] [11 <./images/quantile_regression/rnn/RNN_diagram.png>]
<images/diffusion/Generation-with-Diffusion-Models.png, id=255, 926.00159pt x 228.96758pt> <images/diffusion/Generation-with-Diffusion-Models.png, id=255, 926.00159pt x 228.96758pt>
File: images/diffusion/Generation-with-Diffusion-Models.png Graphic file (type png) File: images/diffusion/Generation-with-Diffusion-Models.png Graphic file (type png)
<use images/diffusion/Generation-with-Diffusion-Models.png> <use images/diffusion/Generation-with-Diffusion-Models.png>
Package pdftex.def Info: images/diffusion/Generation-with-Diffusion-Models.png used on input line 234. Package pdftex.def Info: images/diffusion/Generation-with-Diffusion-Models.png used on input line 236.
(pdftex.def) Requested size: 364.19667pt x 90.05513pt. (pdftex.def) Requested size: 364.19667pt x 90.05513pt.
[12 <./images/diffusion/Generation-with-Diffusion-Models.png>] [13{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBB.enc}] [12 <./images/diffusion/Generation-with-Diffusion-Models.png>] [13{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBB.enc}]
@@ -1443,22 +1451,22 @@ Package caption Warning: \label without proper reference on input line 281.
See the caption package documentation for explanation. See the caption package documentation for explanation.
LaTeX Warning: Reference `fig:diffusion_process' on page 14 undefined on input line 274. LaTeX Warning: Reference `fig:diffusion_process' on page 14 undefined on input line 276.
<images/diffusion/diffusion_graphical_model.png, id=270, 979.66pt x 185.69376pt> <images/diffusion/diffusion_graphical_model.png, id=270, 979.66pt x 185.69376pt>
File: images/diffusion/diffusion_graphical_model.png Graphic file (type png) File: images/diffusion/diffusion_graphical_model.png Graphic file (type png)
<use images/diffusion/diffusion_graphical_model.png> <use images/diffusion/diffusion_graphical_model.png>
Package pdftex.def Info: images/diffusion/diffusion_graphical_model.png used on input line 278. Package pdftex.def Info: images/diffusion/diffusion_graphical_model.png used on input line 280.
(pdftex.def) Requested size: 364.19667pt x 69.03145pt. (pdftex.def) Requested size: 364.19667pt x 69.03145pt.
[14 <./images/diffusion/diffusion_graphical_model.png>] [14 <./images/diffusion/diffusion_graphical_model.png>]
LaTeX Font Info: Trying to load font information for U+bbm on input line 307. LaTeX Font Info: Trying to load font information for U+bbm on input line 309.
(/usr/local/texlive/2023/texmf-dist/tex/latex/bbm-macros/ubbm.fd (/usr/local/texlive/2023/texmf-dist/tex/latex/bbm-macros/ubbm.fd
File: ubbm.fd 1999/03/15 V 1.2 Font definition for bbm font - TH File: ubbm.fd 1999/03/15 V 1.2 Font definition for bbm font - TH
) )
<images/quantile_regression/crps_visualization.png, id=279, 611.4042pt x 395.3169pt> <images/quantile_regression/crps_visualization.png, id=279, 611.4042pt x 395.3169pt>
File: images/quantile_regression/crps_visualization.png Graphic file (type png) File: images/quantile_regression/crps_visualization.png Graphic file (type png)
<use images/quantile_regression/crps_visualization.png> <use images/quantile_regression/crps_visualization.png>
Package pdftex.def Info: images/quantile_regression/crps_visualization.png used on input line 325. Package pdftex.def Info: images/quantile_regression/crps_visualization.png used on input line 327.
(pdftex.def) Requested size: 364.19667pt x 235.4849pt. (pdftex.def) Requested size: 364.19667pt x 235.4849pt.
) [15] [16 <./images/quantile_regression/crps_visualization.png>] ) [15] [16 <./images/quantile_regression/crps_visualization.png>]
\openout2 = `sections/policies.aux'. \openout2 = `sections/policies.aux'.
@@ -1980,15 +1988,15 @@ Package logreq Info: Writing requests to 'verslag.run.xml'.
) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
41963 strings out of 476025 42826 strings out of 476025
875264 string characters out of 5790017 909556 string characters out of 5790017
1884388 words of memory out of 5000000 1884388 words of memory out of 5000000
61527 multiletter control sequences out of 15000+600000 62390 multiletter control sequences out of 15000+600000
606970 words of font info for 100 fonts, out of 8000000 for 9000 609679 words of font info for 109 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191 1141 hyphenation exceptions out of 8191
84i,16n,131p,2100b,5180s stack positions out of 10000i,1000n,20000p,200000b,200000s 84i,16n,131p,2100b,5180s stack positions out of 10000i,1000n,20000p,200000b,200000s
</Users/victormylle/Library/texlive/2023/texmf-var/fonts/pk/ljfour/public/bbm/bbm12.600pk></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertinust1math/LibertinusT1Math.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinBiolinumTB.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinLibertineT.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinLibertineTB.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinLibertineTI.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/stix/stix-mathcal.pfb> </Users/victormylle/Library/texlive/2023/texmf-var/fonts/pk/ljfour/public/bbm/bbm12.600pk></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertinust1math/LibertinusT1Math.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinBiolinumTB.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinLibertineT.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinLibertineTB.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinLibertineTI.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/stix/stix-mathcal.pfb>
Output written on verslag.pdf (50 pages, 8678616 bytes). Output written on verslag.pdf (50 pages, 8679191 bytes).
PDF statistics: PDF statistics:
668 PDF objects out of 1000 (max. 8388607) 668 PDF objects out of 1000 (max. 8388607)
494 compressed objects within 5 object streams 494 compressed objects within 5 object streams

Binary file not shown.

Binary file not shown.

View File

@@ -169,11 +169,16 @@ class NrvDataset(Dataset):
all_features = torch.cat(all_features_list, dim=0) all_features = torch.cat(all_features_list, dim=0)
else: else:
all_features_list = [nrv_features.unsqueeze(1)] all_features_list = [nrv_features + self.]
if self.forecast_features.numel() > 0: if self.forecast_features.numel() > 0:
history_forecast_features = self.forecast_features[ history_forecast_features = self.forecast_features[
actual_idx + 1 : actual_idx + self.sequence_length + 1, : actual_idx
+ 1 : actual_idx
+ self.sequence_length
+ self.predict_sequence_length,
:,
] ]
all_features_list.append(history_forecast_features) all_features_list.append(history_forecast_features)

View File

@@ -80,7 +80,7 @@ class GRUDiffusionModel(DiffusionModel):
self.gru = nn.GRU( self.gru = nn.GRU(
input_size=input_size + time_dim + other_inputs_dim, input_size=input_size + time_dim + other_inputs_dim,
hidden_size=gru_hidden_size, hidden_size=gru_hidden_size,
num_layers=3, num_layers=1,
batch_first=True, batch_first=True,
) )

View File

@@ -590,43 +590,43 @@ class DiffusionTrainer:
title="CRPS", series="test", value=mean_crps, iteration=epoch title="CRPS", series="test", value=mean_crps, iteration=epoch
) )
if self.policy_evaluator: # if self.policy_evaluator:
_, test_loader = self.data_processor.get_dataloaders( # _, test_loader = self.data_processor.get_dataloaders(
predict_sequence_length=self.ts_length, full_day_skip=True # predict_sequence_length=self.ts_length, full_day_skip=True
) # )
optimal_penalty, profit, charge_cycles = ( # optimal_penalty, profit, charge_cycles = (
self.policy_evaluator.optimize_penalty_for_target_charge_cycles( # self.policy_evaluator.optimize_penalty_for_target_charge_cycles(
idx_samples=generated_samples, # idx_samples=generated_samples,
test_loader=test_loader, # test_loader=test_loader,
initial_penalty=self.prev_optimal_penalty, # initial_penalty=self.prev_optimal_penalty,
target_charge_cycles=283, # target_charge_cycles=283,
initial_learning_rate=1, # initial_learning_rate=1,
max_iterations=50, # max_iterations=50,
tolerance=1, # tolerance=1,
iteration=epoch, # iteration=epoch,
) # )
) # )
self.prev_optimal_penalty = optimal_penalty # self.prev_optimal_penalty = optimal_penalty
task.get_logger().report_scalar( # task.get_logger().report_scalar(
title="Optimal Penalty", # title="Optimal Penalty",
series="test", # series="test",
value=optimal_penalty, # value=optimal_penalty,
iteration=epoch, # iteration=epoch,
) # )
task.get_logger().report_scalar( # task.get_logger().report_scalar(
title="Optimal Profit", series="test", value=profit, iteration=epoch # title="Optimal Profit", series="test", value=profit, iteration=epoch
) # )
task.get_logger().report_scalar( # task.get_logger().report_scalar(
title="Optimal Charge Cycles", # title="Optimal Charge Cycles",
series="test", # series="test",
value=charge_cycles, # value=charge_cycles,
iteration=epoch, # iteration=epoch,
) # )
return mean_crps, generated_samples return mean_crps, generated_samples

View File

@@ -2,7 +2,7 @@ from src.utils.clearml import ClearMLHelper
clearml_helper = ClearMLHelper(project_name="Thesis/NrvForecast") clearml_helper = ClearMLHelper(project_name="Thesis/NrvForecast")
task = clearml_helper.get_task( task = clearml_helper.get_task(
task_name="Diffusion Training (GRU - 2048): hidden_sizes=[512, 512] (300 steps), lr=0.0001, time_dim=8 + NRV + L + W + PV + NP", task_name="Diffusion Training: hidden_sizes=[1024, 1024] (300 steps), lr=0.0001, time_dim=8 + NRV + L + W + PV + NP",
) )
task.execute_remotely(queue_name="default", exit_process=True) task.execute_remotely(queue_name="default", exit_process=True)
@@ -32,7 +32,7 @@ data_config.NOMINAL_NET_POSITION = True
data_config = task.connect(data_config, name="data_features") 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(64) data_processor.set_batch_size(64)
data_processor.set_full_day_skip(True) data_processor.set_full_day_skip(True)
@@ -42,33 +42,35 @@ print("Input dim: ", inputDim)
model_parameters = { model_parameters = {
"epochs": 15000, "epochs": 15000,
"learning_rate": 0.0001, "learning_rate": 0.0001,
"hidden_sizes": [512, 512], "hidden_sizes": [1024, 1024],
"time_dim": 8, "time_dim": 8,
} }
model_parameters = task.connect(model_parameters, name="model_parameters") model_parameters = task.connect(model_parameters, name="model_parameters")
#### Model #### #### Model ####
# model = SimpleDiffusionModel( model = SimpleDiffusionModel(
# 96,
# model_parameters["hidden_sizes"],
# other_inputs_dim=inputDim[1],
# time_dim=model_parameters["time_dim"],
# )
model = GRUDiffusionModel(
96, 96,
model_parameters["hidden_sizes"], model_parameters["hidden_sizes"],
other_inputs_dim=inputDim[2], other_inputs_dim=inputDim[1],
time_dim=model_parameters["time_dim"], time_dim=model_parameters["time_dim"],
gru_hidden_size=2048,
) )
# model = GRUDiffusionModel(
# 96,
# model_parameters["hidden_sizes"],
# other_inputs_dim=inputDim[2],
# time_dim=model_parameters["time_dim"],
# gru_hidden_size=1024,
# )
### Policy Evaluator ### ### Policy Evaluator ###
battery = Battery(2, 1) battery = Battery(2, 1)
baseline_policy = BaselinePolicy(battery, data_path="") baseline_policy = BaselinePolicy(battery, data_path="")
policy_evaluator = PolicyEvaluator(baseline_policy, task) policy_evaluator = PolicyEvaluator(baseline_policy, task)
#### Trainer #### #### Trainer ####
trainer = DiffusionTrainer(model, data_processor, "cuda", policy_evaluator=None) trainer = DiffusionTrainer(
model, data_processor, "cuda", policy_evaluator=policy_evaluator
)
trainer.train(model_parameters["epochs"], model_parameters["learning_rate"], task) trainer.train(model_parameters["epochs"], model_parameters["learning_rate"], task)