-
Notifications
You must be signed in to change notification settings - Fork 1
/
dnnCS_models.py
62 lines (54 loc) · 2.02 KB
/
dnnCS_models.py
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
60
61
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import backend
from tensorflow.keras.layers import Layer, Dense
#from dnnCS_layers import Antipodal
#############################
### custom network ##########
#############################
def dnnDec(input_0, n):
### Level 0
out_0 = Dense(units=2*n, activation='relu', name='H0')(input_0)
### Level 1
out_1 = Dense(units=2*n, activation='relu', name='H1')(out_0)
### Level 2
out_2 = Dense(units=n, activation='relu', name='H2')(out_1)
### Final output
out_nn = Dense(units=n, activation='sigmoid', name='Out')(out_2)
return out_nn
def dnnAntipodal(input_0, n, m):
### CS encoder
y_0 = Antipodal(units=m, input_shape=(n,), name='A')(input_0)
### Level 0
out_0 = Dense(units=2*n, activation='relu', name='H0')(y_0)
### Level 1
out_1 = Dense(units=2*n, activation='relu', name='H1')(out_0)
### Level 2
out_2 = Dense(units=n, activation='relu', name='H2')(out_1)
### Final output
out_nn = Dense(units=n, activation='sigmoid', name='Out')(out_2)
return out_nn
def dnnFloat(input_0, n, m):
### CS encoder
y_0 = Dense(units=m, activation='linear', use_bias=False, name='A')(input_0)
### Level 0
out_0 = Dense(units=2*n, activation='relu', name='H0')(y_0)
### Level 1
out_1 = Dense(units=2*n, activation='relu', name='H1')(out_0)
### Level 2
out_2 = Dense(units=n, activation='relu', name='H2')(out_1)
### Final output
out_nn = Dense(units=n, activation='sigmoid', name='Out')(out_2)
return out_nn
def dnnFloatFake(input_0, n, m):
### CS encoder
y_0 = Dense(units=m, activation='linear', name='MatA')(input_0)
### Level 0
out_0 = Dense(units=2*n, activation='relu', name='H0')(y_0)
### Level 1
out_1 = Dense(units=2*n, activation='relu', name='H1')(out_0)
### Level 2
out_2 = Dense(units=n, activation='relu', name='H2')(out_1)
### Final output
out_nn = Dense(units=n, activation='sigmoid', name='Out')(out_2)
return out_nn