\hypertarget{convolution_8hpp_source}{}\doxysection{convolution.\+hpp}
\label{convolution_8hpp_source}\index{src/layers/convolution.hpp@{src/layers/convolution.hpp}}
\mbox{\hyperlink{convolution_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef CONVOLUTION\_LAYER\_HPP}}
\DoxyCodeLine{2 \textcolor{preprocessor}{\#define CONVOLUTION\_LAYER\_HPP}}
\DoxyCodeLine{3 }
\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <random>}}
\DoxyCodeLine{5 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{layer_8hpp}{layer.hpp}}"{}}}
\DoxyCodeLine{6 }
\DoxyCodeLine{7 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespace_layer}{Layer}}\{}
\DoxyCodeLine{8 \textcolor{comment}{  /*****************************************}}
\DoxyCodeLine{9 \textcolor{comment}{   * Implementation of a convolutionnal Layer}}
\DoxyCodeLine{10 \textcolor{comment}{}}
\DoxyCodeLine{11 \textcolor{comment}{   */}}
\DoxyCodeLine{12   \textcolor{keyword}{class }\mbox{\hyperlink{class_layer_1_1_convolution_layer}{ConvolutionLayer}}:\textcolor{keyword}{public} \mbox{\hyperlink{namespace_layer}{Layer}}\{}
\DoxyCodeLine{13 }
\DoxyCodeLine{14   \textcolor{keyword}{private}:}
\DoxyCodeLine{15     \textcolor{keywordtype}{size\_t} nf,ni,nj;}
\DoxyCodeLine{16     \textcolor{keywordtype}{size\_t} mf,mi,mj;}
\DoxyCodeLine{17     \textcolor{keywordtype}{size\_t} p,q;}
\DoxyCodeLine{18     \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} K;}
\DoxyCodeLine{19     \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} b;}
\DoxyCodeLine{20     \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} nabla\_K;}
\DoxyCodeLine{21     \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} nabla\_b;}
\DoxyCodeLine{22 }
\DoxyCodeLine{23   \textcolor{keyword}{public}:}
\DoxyCodeLine{24     \mbox{\hyperlink{class_layer_1_1_convolution_layer_a7d76977d90ca11bd1d36dbade396f1c6}{ConvolutionLayer}}(\textcolor{keywordtype}{size\_t} nf,\textcolor{keywordtype}{size\_t} ni,\textcolor{keywordtype}{size\_t} nj,\textcolor{keywordtype}{size\_t} p,\textcolor{keywordtype}{size\_t} q,\textcolor{keywordtype}{size\_t} mf);}
\DoxyCodeLine{25     \mbox{\hyperlink{class_layer_1_1_convolution_layer_a0b79936c340c1667025dfda84c4c9273}{\string~ConvolutionLayer}}();}
\DoxyCodeLine{26     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_layer_1_1_convolution_layer_a4ec9a15fc2bb960f6c02841c6293d61a}{init}}(\mbox{\hyperlink{vector_8hpp_a4b04262b81aa7d31eb5d2f607e2a35de}{Real}} mu,\mbox{\hyperlink{vector_8hpp_a4b04262b81aa7d31eb5d2f607e2a35de}{Real}} sigma);}
\DoxyCodeLine{27     \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} \mbox{\hyperlink{class_layer_1_1_convolution_layer_a8315ef1016d165f8986fb3d4c2b65276}{feed\_forward}}(\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} \mbox{\hyperlink{class_layer_1_1_layer_af2ebcf019bc0e4b97f41fc9205706665}{x}}) \textcolor{keyword}{override};}
\DoxyCodeLine{28     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_layer_1_1_convolution_layer_a435dfabf3e575ddf07a11304e2d4fe84}{init\_nabla}}() \textcolor{keyword}{override};}
\DoxyCodeLine{29     \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} \mbox{\hyperlink{class_layer_1_1_convolution_layer_a5ccdf83a1217d57678c8bedcecc43a2a}{back\_propagation}}(\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} e) \textcolor{keyword}{override};}
\DoxyCodeLine{30     \textcolor{keywordtype}{void} \mbox{\hyperlink{class_layer_1_1_convolution_layer_a4764f42dfc31ad2d848e0d1c22b0704b}{update}}(\mbox{\hyperlink{vector_8hpp_a4b04262b81aa7d31eb5d2f607e2a35de}{Real}} eta) \textcolor{keyword}{override};}
\DoxyCodeLine{31   \};}
\DoxyCodeLine{32 \}}
\DoxyCodeLine{33 \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
