-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathMultiAddLayer.h
More file actions
executable file
·27 lines (24 loc) · 1.13 KB
/
MultiAddLayer.h
File metadata and controls
executable file
·27 lines (24 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once
#include "common.h"
namespace NeuralNet {
struct MultiAddLayer : public Layer_binaryOp {
MultiAddLayer(){}
MultiAddLayer(int in1, int in2, int out, ActivationType actType0,
std::shared_ptr<Initializer> init_W_one, std::shared_ptr<Initializer> init_W_two,
std::shared_ptr<Initializer> init_B);
virtual ~MultiAddLayer(){}
virtual void activateUp();
virtual void save(std::string filename = "MultiAddLayer");
virtual void load(std::string filename = "MultiAddLayer");
virtual void calGrad(std::shared_ptr<arma::mat> delta_in);
virtual void calGrad(std::shared_ptr<arma::mat> delta_in, int t);
virtual void initializeWeight();
void accumulateGrad(std::shared_ptr<arma::mat> delta_in, int t);
void clearAccuGrad();
ActivationType actType;
std::shared_ptr<arma::mat> W_one, W_two, B;
std::shared_ptr<arma::mat> grad_W_one, grad_W_two, grad_B;
std::shared_ptr<arma::mat> grad_W_one_accu, grad_W_two_accu, grad_B_accu;
std::shared_ptr<Initializer> initializer_W_one, initializer_W_two, initializer_B;
};
}