- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsigmoid.java
More file actions
Latest commit
59 lines (55 loc) · 1.56 KB
/
Copy pathsigmoid.java
File metadata and controls
59 lines (55 loc) · 1.56 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
49
50
51
52
53
54
55
56
57
58
59
packagetensordef;
importbasicops.*;
importjava.math.*;
importjava.util.*;
publicclasssigmoidextendssuperopdef
{
tensorarrayarr;
tensorarrayones1;
tensorarrayones2;
add_tensorarrayaddition;
div_tensorarraydivision;
exp_tensorarrayexponenent;
negate_tensorarraynegops;
tensorarrayeval0;
tensorarrayeval1;
tensorarrayeval2;
tensorgraphgraph;
tensorarrayeval;
backpropagationstructure<sigmoid> curstruct;
publicsigmoid(tensorarrayarr1,tensorgraphgraph)
{
arr=arr1;
this.graph=graph;
ones1=newtensorarray(arr.dim1,arr.dim2,false);
ones1.ones();
ones2=newtensorarray(arr.dim1,arr.dim2,false);
ones2.ones();
eval0=newtensorarray(arr.dim1,arr.dim2,false);
eval1=newtensorarray(arr.dim1,arr.dim2,false);
eval2=newtensorarray(arr.dim1,arr.dim2,false);
eval=newtensorarray(arr.dim1,arr.dim2,false);
curstruct=newbackpropagationstructure<sigmoid>(this,eval,null);
graph.addtolist(curstruct);
negops=newnegate_tensorarray(arr,graph);
exponenent=newexp_tensorarray(eval0,graph);
addition=newadd_tensorarray(ones1,eval1,graph);
division=newdiv_tensorarray(ones2,eval2,graph);
}
publictensorarrayforward()
{
eval0.assigntensorarray(negops.forward());
eval1.assigntensorarray(exponenent.forward());
eval2.assigntensorarray(addition.forward());
eval.assigntensorarray(division.forward());
returneval;
}
publicvoidbackward(tensorarraybackflow)
{
division.backward(backflow);
addition.backward(eval2);
exponenent.backward(eval1);
negops.backward(eval0);
graph.removefromlist(curstruct);
}
}