full_connected.hpp 901 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef LAYER_FULLCONNECTED_HPP
  2. #define LAYER_FULLCONNECTED_HPP
  3. #include <random>
  4. #include "layer.hpp"
  5. namespace Layer{
  6. class FullConnected:public Layer{
  7. public:
  8. //9using Layer::x_out;
  9. Vector b;
  10. Vector w;
  11. Vector nabla_b;
  12. Vector nabla_w;
  13. public:
  14. FullConnected(size_t n_in,size_t n_out);
  15. ~FullConnected();
  16. void init(Real m,Real d);
  17. void init_standard();
  18. Vector feed_forward(Vector x);
  19. void init_nabla();
  20. Vector back_propagation(Vector d);
  21. void update(Real eta);
  22. };
  23. inline
  24. FullConnected::FullConnected(size_t n_in,size_t n_out):Layer(n_in,n_out){
  25. b=init_vector(n_out);
  26. w=init_vector(n_out*n_in);
  27. nabla_b=init_vector(n_out);
  28. nabla_w=init_vector(n_out*n_in);
  29. }
  30. inline
  31. FullConnected::~FullConnected(){
  32. delete_vector(b);
  33. delete_vector(w);
  34. delete_vector(nabla_b);
  35. delete_vector(nabla_w);
  36. }
  37. }
  38. #endif