forked from UTA-HEP-Computing/EventClassificationDNN
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathClassification.py
More file actions
73 lines (53 loc) · 2.34 KB
/
Classification.py
File metadata and controls
73 lines (53 loc) · 2.34 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from DLTools.ModelWrapper import *
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.layers import BatchNormalization,Dropout
from keras.models import model_from_json
class FullyConnectedRegression(ModelWrapper):
def __init__(self, Name, N_input=0, width=0, depth=0, init=0):
super(FullyConnectedRegression, self).__init__(Name)
self.width=width
self.depth=depth
self.N_input=N_input
self.init=init
self.MetaData.update({ "width":self.width,
"depth":self.depth,
"N_input":self.N_input,
"init":self.init})
def Build(self):
model = Sequential()
model.add(Dense(self.width,input_dim=self.N_input,init=self.init))
model.add(Activation('tanh'))
for i in xrange(0,self.depth):
model.add(BatchNormalization())
model.add(Dense(self.width,init=self.init))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(1,input_dim=self.width))
self.Model=model
class FullyConnectedClassification(ModelWrapper):
def __init__(self, Name, N_input=0, width=0, depth=0, N_classes=100, init=0):
super(FullyConnectedClassification, self).__init__(Name)
self.width=width
self.depth=depth
self.N_input=N_input
self.N_classes=N_classes
self.init=init
self.MetaData.update({ "width":self.width,
"depth":self.depth,
"N_input":self.N_input,
"N_classes":self.N_classes,
"init":self.init})
def Build(self):
model = Sequential()
model.add(Dense(self.width,input_dim=self.N_input,init=self.init))
model.add(Activation('relu'))
for i in xrange(0,self.depth):
# model.add(BatchNormalization())
model.add(Dense(self.width,init=self.init))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(self.N_classes, activation='softmax'))
self.Model=model
def Compile(self, Loss="categorical_crossentropy", Optimizer="rmsprop"):
self.Model.compile(loss=Loss, optimizer=Optimizer,metrics=["accuracy"])