network_8hpp_source.tex 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. \hypertarget{network_8hpp_source}{}\doxysection{network.\+hpp}
  2. \label{network_8hpp_source}\index{src/network.hpp@{src/network.hpp}}
  3. \mbox{\hyperlink{network_8hpp}{Go to the documentation of this file.}}
  4. \begin{DoxyCode}{0}
  5. \DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef NETWORK\_HPP}}
  6. \DoxyCodeLine{2 \textcolor{preprocessor}{\#define NETWORK\_HPP}}
  7. \DoxyCodeLine{3 }
  8. \DoxyCodeLine{4 \textcolor{preprocessor}{\#include <random>}}
  9. \DoxyCodeLine{5 \textcolor{preprocessor}{\#include <list>}}
  10. \DoxyCodeLine{6 }
  11. \DoxyCodeLine{7 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{layer_8hpp}{layers/layer.hpp}}"{}}}
  12. \DoxyCodeLine{8 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{dataset_8hpp}{dataset.hpp}}"{}}}
  13. \DoxyCodeLine{9 }
  14. \DoxyCodeLine{10 \textcolor{keyword}{enum} \mbox{\hyperlink{network_8hpp_a0c3a80fe878325a4a277470fdc7b3eb3}{CostFunction}}\{\mbox{\hyperlink{network_8hpp_a0c3a80fe878325a4a277470fdc7b3eb3af206692cba38b2772a5172a6e70719e0}{CrossEntropy}},\mbox{\hyperlink{network_8hpp_a0c3a80fe878325a4a277470fdc7b3eb3a47322e5ac1e111522d3aa88118ac78c0}{Quadratic}}\};}
  15. \DoxyCodeLine{11 }
  16. \DoxyCodeLine{12 \textcolor{keyword}{class }\mbox{\hyperlink{class_network}{Network}}\{}
  17. \DoxyCodeLine{13 \textcolor{keyword}{public}:}
  18. \DoxyCodeLine{14 list<Layer::Layer*> \mbox{\hyperlink{class_network_a4bb79b836cfd07172c7ed37dade8cefd}{layers}};}
  19. \DoxyCodeLine{15 \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{class_network_a912e19f5f19a486459cb8dac0bba7b7e}{n\_in}};}
  20. \DoxyCodeLine{16 \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{class_network_a4b6a975d8042d27ac5a7a026db5fc1f0}{n\_out}};}
  21. \DoxyCodeLine{17 \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} \mbox{\hyperlink{class_network_ad71ea0a71fa28c4510e42fb809846404}{a}};}
  22. \DoxyCodeLine{18 \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} \mbox{\hyperlink{class_network_a7d23ea49f6f1c5c0524210f658390cbc}{last\_delta}};}
  23. \DoxyCodeLine{19 \mbox{\hyperlink{network_8hpp_a0c3a80fe878325a4a277470fdc7b3eb3}{CostFunction}} \mbox{\hyperlink{class_network_abf80a2387544fb826f11ab922b857d50}{C}};}
  24. \DoxyCodeLine{20 \textcolor{keywordtype}{void} \mbox{\hyperlink{class_network_a7256dd4fca14fcf9373591ea1a1b42d6}{compute\_last\_delta}}(\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} y);}
  25. \DoxyCodeLine{21 \textcolor{keyword}{protected}:}
  26. \DoxyCodeLine{22 \textcolor{keywordtype}{void} \mbox{\hyperlink{class_network_aa515f8e09f5d2c989abdf68d97e79e26}{shuffle}}(\textcolor{keywordtype}{size\_t}* tab,\textcolor{keywordtype}{size\_t} size);}
  27. \DoxyCodeLine{23 \textcolor{keywordtype}{void} \mbox{\hyperlink{class_network_a2bb9069ed59682d142860215ed970e06}{update\_batch}}(\mbox{\hyperlink{class_dataset}{Dataset}}* dataset,\textcolor{keywordtype}{size\_t}* indices,\textcolor{keywordtype}{size\_t} begin,\textcolor{keywordtype}{size\_t} end,\mbox{\hyperlink{vector_8hpp_a4b04262b81aa7d31eb5d2f607e2a35de}{Real}} eta);}
  28. \DoxyCodeLine{24 \textcolor{keywordtype}{void} \mbox{\hyperlink{class_network_a6c324cab761fdff1c614305a6544a311}{back\_propagation}}(\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} x,\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} y,\mbox{\hyperlink{vector_8hpp_a4b04262b81aa7d31eb5d2f607e2a35de}{Real}} eta);}
  29. \DoxyCodeLine{25 \textcolor{keyword}{public}:}
  30. \DoxyCodeLine{26 \mbox{\hyperlink{class_network_a3cc2fb4f8fa4d507077e8da85ce5a1c8}{Network}}();}
  31. \DoxyCodeLine{27 \textcolor{keywordtype}{void} \mbox{\hyperlink{class_network_a790c6368ae5d69fbdb550ed7306543e5}{set\_cost}}(\mbox{\hyperlink{network_8hpp_a0c3a80fe878325a4a277470fdc7b3eb3}{CostFunction}});}
  32. \DoxyCodeLine{28 \textcolor{keywordtype}{void} \mbox{\hyperlink{class_network_ade63dfedd3ffa5c0b9ef3e03aa58bc11}{push\_layer}}(\mbox{\hyperlink{class_layer_1_1_layer}{Layer::Layer}}\& l);}
  33. \DoxyCodeLine{29 \textcolor{keywordtype}{void} \mbox{\hyperlink{class_network_a33b17ec8563577be73c109bfbb267c52}{is\_done}}();}
  34. \DoxyCodeLine{30 \mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} \mbox{\hyperlink{class_network_ab4a53f3e2d5c1033e9b2314826acf821}{feed\_forward}}(\mbox{\hyperlink{vector_8hpp_ab9855a300a7759f4c0f85067d44e4c38}{Vector}} x\_in);}
  35. \DoxyCodeLine{31 \mbox{\hyperlink{vector_8hpp_a4b04262b81aa7d31eb5d2f607e2a35de}{Real}} \mbox{\hyperlink{class_network_a08f9864a68e23b74c1c212c67ca70ed4}{eval}}(\mbox{\hyperlink{class_dataset}{Dataset}} *dataset);}
  36. \DoxyCodeLine{32 \textcolor{keywordtype}{void} \mbox{\hyperlink{class_network_a7bfcf0b5c1ed41fc14771d256789a042}{train}}(\mbox{\hyperlink{class_dataset}{Dataset}}* dataset,\textcolor{keywordtype}{size\_t} nb\_epochs,\textcolor{keywordtype}{size\_t} batch\_size,\mbox{\hyperlink{vector_8hpp_a4b04262b81aa7d31eb5d2f607e2a35de}{Real}} eta);}
  37. \DoxyCodeLine{33 \};}
  38. \DoxyCodeLine{34 }
  39. \DoxyCodeLine{35 \textcolor{keyword}{inline} \textcolor{keywordtype}{void}}
  40. \DoxyCodeLine{36 \mbox{\hyperlink{class_network_a790c6368ae5d69fbdb550ed7306543e5}{Network::set\_cost}}(\mbox{\hyperlink{network_8hpp_a0c3a80fe878325a4a277470fdc7b3eb3}{CostFunction}} C\_)\{}
  41. \DoxyCodeLine{37 \mbox{\hyperlink{class_network_abf80a2387544fb826f11ab922b857d50}{C}}=C\_;}
  42. \DoxyCodeLine{38 \}}
  43. \DoxyCodeLine{39 \textcolor{preprocessor}{\#endif}}
  44. \end{DoxyCode}