-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathlstm_init.m
More file actions
49 lines (40 loc) · 1.14 KB
/
lstm_init.m
File metadata and controls
49 lines (40 loc) · 1.14 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
function nn = lstm_init(In,Hidden,Out)
k = 3*Hidden;
q=0.1;
nn.Wx = randn(In,Hidden) * q;
nn.bx = zeros(1,Hidden);
nn.Wxv = zeros(In,Hidden); % velocity, for applying momentum
nn.bxv = zeros(1,Hidden);
nn.Wf = randn(k,Hidden) * q;
nn.bf = zeros(1,Hidden);
nn.Wfv = zeros(k,Hidden); % velocity, for applying momentum
nn.bfv = zeros(1,Hidden);
nn.Wi = randn(k,Hidden) * q;
nn.bi = zeros(1,Hidden);
nn.Wiv = zeros(k,Hidden);
nn.biv = zeros(1,Hidden);
nn.Wo = randn(k,Hidden) * q;
nn.bo = zeros(1,Hidden);
nn.Wov = zeros(k,Hidden);
nn.bov = zeros(1,Hidden);
nn.Wc = randn(2*Hidden,Hidden) * q;
nn.bc = zeros(1,Hidden);
nn.Wcv = zeros(2*Hidden,Hidden);
nn.bcv = zeros(1,Hidden);
nn.Wout = randn(Hidden,Out) * q;
nn.bout = zeros(1,Out);
nn.Woutv = zeros(Hidden,Out);
nn.boutv = zeros(1,Out);
nn.widthOut = Out;
nn.widthIn = In;
nn.widthHidden = Hidden;
% initialise the nonlinearities inside the lstm
% to use different nonlinearities, change them here.
nn.sigm = @(x)logsig(x);
nn.dsigm = @(x)x.*(1-x);
nn.tanh = @(x)tansig(x);
nn.dtanh = @(x)(1-x.^2);
% nn.sigm = @(x)max(0,min(1,x));
% nn.dsigm = @(x) (x>0)&(x<1);
% nn.tanh = @(x)max(0,x);
% nn.dtanh = @(x)x>0;