class_layer_1_1_pooling.tex 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. \hypertarget{class_layer_1_1_pooling}{}\doxysection{Layer\+::Pooling Class Reference}
  2. \label{class_layer_1_1_pooling}\index{Layer::Pooling@{Layer::Pooling}}
  3. {\ttfamily \#include $<$pooling.\+hpp$>$}
  4. Inheritance diagram for Layer\+::Pooling\+:
  5. \nopagebreak
  6. \begin{figure}[H]
  7. \begin{center}
  8. \leavevmode
  9. \includegraphics[width=166pt]{class_layer_1_1_pooling__inherit__graph}
  10. \end{center}
  11. \end{figure}
  12. \doxysubsection*{Public Member Functions}
  13. \begin{DoxyCompactItemize}
  14. \item
  15. \mbox{\hyperlink{class_layer_1_1_pooling_ae4782bcaa9306742b54d01d1f26c9837}{Pooling}} (size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_a39aaffa3c994629ae48acddd980debe0}{nf}}, size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_aa5039166bf8e18418f4173f778adc199}{ni}}, size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_a2d3205efd40debac2409d505fdcc7ecc}{nj}}, size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_a9fc1a9baf77fa32e25ccf74c088b45d5}{p}}, size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_ab0e8c8cc580e5fdc0f86437ee95b9d94}{q}})
  16. \item
  17. \mbox{\hyperlink{class_layer_1_1_pooling_adf15e44fc1480e17420808c15aa44067}{$\sim$\+Pooling}} ()
  18. \item
  19. \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} \mbox{\hyperlink{class_layer_1_1_pooling_a91e5d2cfd897d0f196de969909c92afc}{feed\+\_\+forward}} (\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} \mbox{\hyperlink{class_layer_1_1_layer_af2ebcf019bc0e4b97f41fc9205706665}{x}}) override
  20. \item
  21. void \mbox{\hyperlink{class_layer_1_1_pooling_a5c59ea7b198d3e42e334051f7a6e4645}{init\+\_\+nabla}} () override
  22. \item
  23. \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} \mbox{\hyperlink{class_layer_1_1_pooling_a3dc9bb1a69d3d7c2f627da9d2b737ac2}{back\+\_\+propagation}} (\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} e) override
  24. \item
  25. void \mbox{\hyperlink{class_layer_1_1_pooling_ab04c4682d176b4bc760aee53c0ecc36a}{update}} (\mbox{\hyperlink{vector_8hpp_a4b04262b81aa7d31eb5d2f607e2a35de}{Real}}) override
  26. \end{DoxyCompactItemize}
  27. \doxysubsection*{Public Attributes}
  28. \begin{DoxyCompactItemize}
  29. \item
  30. size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_a39aaffa3c994629ae48acddd980debe0}{nf}}
  31. \item
  32. size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_aa5039166bf8e18418f4173f778adc199}{ni}}
  33. \item
  34. size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_a2d3205efd40debac2409d505fdcc7ecc}{nj}}
  35. \item
  36. size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_a9fc1a9baf77fa32e25ccf74c088b45d5}{p}}
  37. \item
  38. size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_ab0e8c8cc580e5fdc0f86437ee95b9d94}{q}}
  39. \item
  40. size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_a1360199bea24a84eba49c82fa7c85afa}{mi}}
  41. \item
  42. size\+\_\+t \mbox{\hyperlink{class_layer_1_1_pooling_a70a33709b8f2e3d623b2b7be016e0097}{mj}}
  43. \end{DoxyCompactItemize}
  44. \doxysubsection{Constructor \& Destructor Documentation}
  45. \mbox{\Hypertarget{class_layer_1_1_pooling_ae4782bcaa9306742b54d01d1f26c9837}\label{class_layer_1_1_pooling_ae4782bcaa9306742b54d01d1f26c9837}}
  46. \index{Layer::Pooling@{Layer::Pooling}!Pooling@{Pooling}}
  47. \index{Pooling@{Pooling}!Layer::Pooling@{Layer::Pooling}}
  48. \doxysubsubsection{\texorpdfstring{Pooling()}{Pooling()}}
  49. {\footnotesize\ttfamily Layer\+::\+Pooling\+::\+Pooling (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{nf, }\item[{size\+\_\+t}]{ni, }\item[{size\+\_\+t}]{nj, }\item[{size\+\_\+t}]{p, }\item[{size\+\_\+t}]{q }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  50. \mbox{\Hypertarget{class_layer_1_1_pooling_adf15e44fc1480e17420808c15aa44067}\label{class_layer_1_1_pooling_adf15e44fc1480e17420808c15aa44067}}
  51. \index{Layer::Pooling@{Layer::Pooling}!````~Pooling@{$\sim$Pooling}}
  52. \index{````~Pooling@{$\sim$Pooling}!Layer::Pooling@{Layer::Pooling}}
  53. \doxysubsubsection{\texorpdfstring{$\sim$Pooling()}{~Pooling()}}
  54. {\footnotesize\ttfamily Layer\+::\+Pooling\+::$\sim$\+Pooling (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  55. \doxysubsection{Member Function Documentation}
  56. \mbox{\Hypertarget{class_layer_1_1_pooling_a3dc9bb1a69d3d7c2f627da9d2b737ac2}\label{class_layer_1_1_pooling_a3dc9bb1a69d3d7c2f627da9d2b737ac2}}
  57. \index{Layer::Pooling@{Layer::Pooling}!back\_propagation@{back\_propagation}}
  58. \index{back\_propagation@{back\_propagation}!Layer::Pooling@{Layer::Pooling}}
  59. \doxysubsubsection{\texorpdfstring{back\_propagation()}{back\_propagation()}}
  60. {\footnotesize\ttfamily \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} Layer\+::\+Pooling\+::back\+\_\+propagation (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}}}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
  61. Apply back propagation algorithm on the delta output vector d. Used the input vector stored in x\+\_\+in\+\_\+ref during feedforward. Return a reference to the computed (and stored) input delta vector. Nabla vectors must be computed here.
  62. Implements \mbox{\hyperlink{class_layer_1_1_layer_ad9e2853fce56b014b1e9de5097e21dbd}{Layer\+::\+Layer}}.
  63. \mbox{\Hypertarget{class_layer_1_1_pooling_a91e5d2cfd897d0f196de969909c92afc}\label{class_layer_1_1_pooling_a91e5d2cfd897d0f196de969909c92afc}}
  64. \index{Layer::Pooling@{Layer::Pooling}!feed\_forward@{feed\_forward}}
  65. \index{feed\_forward@{feed\_forward}!Layer::Pooling@{Layer::Pooling}}
  66. \doxysubsubsection{\texorpdfstring{feed\_forward()}{feed\_forward()}}
  67. {\footnotesize\ttfamily \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} Layer\+::\+Pooling\+::feed\+\_\+forward (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}}}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
  68. Apply the layer to the input vector {\ttfamily x}. Vectors {\ttfamily x\+\_\+in\+\_\+ref} and {\ttfamily x\+\_\+out} must be updated in consequence. Return a reference to x\+\_\+out.
  69. Implements \mbox{\hyperlink{class_layer_1_1_layer_aeb5b92a01bc4e867d347bff4767e919f}{Layer\+::\+Layer}}.
  70. \mbox{\Hypertarget{class_layer_1_1_pooling_a5c59ea7b198d3e42e334051f7a6e4645}\label{class_layer_1_1_pooling_a5c59ea7b198d3e42e334051f7a6e4645}}
  71. \index{Layer::Pooling@{Layer::Pooling}!init\_nabla@{init\_nabla}}
  72. \index{init\_nabla@{init\_nabla}!Layer::Pooling@{Layer::Pooling}}
  73. \doxysubsubsection{\texorpdfstring{init\_nabla()}{init\_nabla()}}
  74. {\footnotesize\ttfamily void Layer\+::\+Pooling\+::init\+\_\+nabla (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
  75. Initialize nabla vectors which are used during gradient descent.
  76. Implements \mbox{\hyperlink{class_layer_1_1_layer_a87dbd5d1c1091769ba285084bd3513e7}{Layer\+::\+Layer}}.
  77. \mbox{\Hypertarget{class_layer_1_1_pooling_ab04c4682d176b4bc760aee53c0ecc36a}\label{class_layer_1_1_pooling_ab04c4682d176b4bc760aee53c0ecc36a}}
  78. \index{Layer::Pooling@{Layer::Pooling}!update@{update}}
  79. \index{update@{update}!Layer::Pooling@{Layer::Pooling}}
  80. \doxysubsubsection{\texorpdfstring{update()}{update()}}
  81. {\footnotesize\ttfamily void Layer\+::\+Pooling\+::update (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{vector_8hpp_a4b04262b81aa7d31eb5d2f607e2a35de}{Real}}}]{eta }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
  82. Update layer parameters using gradient descent algorithm with learning rate eta.
  83. Implements \mbox{\hyperlink{class_layer_1_1_layer_a8f0801b946b94dfe856c57a632c9998f}{Layer\+::\+Layer}}.
  84. \doxysubsection{Member Data Documentation}
  85. \mbox{\Hypertarget{class_layer_1_1_pooling_a1360199bea24a84eba49c82fa7c85afa}\label{class_layer_1_1_pooling_a1360199bea24a84eba49c82fa7c85afa}}
  86. \index{Layer::Pooling@{Layer::Pooling}!mi@{mi}}
  87. \index{mi@{mi}!Layer::Pooling@{Layer::Pooling}}
  88. \doxysubsubsection{\texorpdfstring{mi}{mi}}
  89. {\footnotesize\ttfamily size\+\_\+t Layer\+::\+Pooling\+::mi}
  90. \mbox{\Hypertarget{class_layer_1_1_pooling_a70a33709b8f2e3d623b2b7be016e0097}\label{class_layer_1_1_pooling_a70a33709b8f2e3d623b2b7be016e0097}}
  91. \index{Layer::Pooling@{Layer::Pooling}!mj@{mj}}
  92. \index{mj@{mj}!Layer::Pooling@{Layer::Pooling}}
  93. \doxysubsubsection{\texorpdfstring{mj}{mj}}
  94. {\footnotesize\ttfamily size\+\_\+t Layer\+::\+Pooling\+::mj}
  95. \mbox{\Hypertarget{class_layer_1_1_pooling_a39aaffa3c994629ae48acddd980debe0}\label{class_layer_1_1_pooling_a39aaffa3c994629ae48acddd980debe0}}
  96. \index{Layer::Pooling@{Layer::Pooling}!nf@{nf}}
  97. \index{nf@{nf}!Layer::Pooling@{Layer::Pooling}}
  98. \doxysubsubsection{\texorpdfstring{nf}{nf}}
  99. {\footnotesize\ttfamily size\+\_\+t Layer\+::\+Pooling\+::nf}
  100. \mbox{\Hypertarget{class_layer_1_1_pooling_aa5039166bf8e18418f4173f778adc199}\label{class_layer_1_1_pooling_aa5039166bf8e18418f4173f778adc199}}
  101. \index{Layer::Pooling@{Layer::Pooling}!ni@{ni}}
  102. \index{ni@{ni}!Layer::Pooling@{Layer::Pooling}}
  103. \doxysubsubsection{\texorpdfstring{ni}{ni}}
  104. {\footnotesize\ttfamily size\+\_\+t Layer\+::\+Pooling\+::ni}
  105. \mbox{\Hypertarget{class_layer_1_1_pooling_a2d3205efd40debac2409d505fdcc7ecc}\label{class_layer_1_1_pooling_a2d3205efd40debac2409d505fdcc7ecc}}
  106. \index{Layer::Pooling@{Layer::Pooling}!nj@{nj}}
  107. \index{nj@{nj}!Layer::Pooling@{Layer::Pooling}}
  108. \doxysubsubsection{\texorpdfstring{nj}{nj}}
  109. {\footnotesize\ttfamily size\+\_\+t Layer\+::\+Pooling\+::nj}
  110. \mbox{\Hypertarget{class_layer_1_1_pooling_a9fc1a9baf77fa32e25ccf74c088b45d5}\label{class_layer_1_1_pooling_a9fc1a9baf77fa32e25ccf74c088b45d5}}
  111. \index{Layer::Pooling@{Layer::Pooling}!p@{p}}
  112. \index{p@{p}!Layer::Pooling@{Layer::Pooling}}
  113. \doxysubsubsection{\texorpdfstring{p}{p}}
  114. {\footnotesize\ttfamily size\+\_\+t Layer\+::\+Pooling\+::p}
  115. \mbox{\Hypertarget{class_layer_1_1_pooling_ab0e8c8cc580e5fdc0f86437ee95b9d94}\label{class_layer_1_1_pooling_ab0e8c8cc580e5fdc0f86437ee95b9d94}}
  116. \index{Layer::Pooling@{Layer::Pooling}!q@{q}}
  117. \index{q@{q}!Layer::Pooling@{Layer::Pooling}}
  118. \doxysubsubsection{\texorpdfstring{q}{q}}
  119. {\footnotesize\ttfamily size\+\_\+t Layer\+::\+Pooling\+::q}
  120. The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
  121. \item
  122. src/layers/\mbox{\hyperlink{pooling_8hpp}{pooling.\+hpp}}\item
  123. src/layers/\mbox{\hyperlink{pooling_8cpp}{pooling.\+cpp}}\end{DoxyCompactItemize}