-
Notifications
You must be signed in to change notification settings - Fork 136
/
Copy path05_convolution_net_by_DeepCognition.ai.py
45 lines (35 loc) · 1.93 KB
/
05_convolution_net_by_DeepCognition.ai.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
from keras.layers.convolutional import Conv2D
from keras.layers.pooling import MaxPooling2D
from keras.layers.core import Dropout
from keras.layers.core import Flatten
from keras.layers.core import Dense
from keras.layers import Input
from keras.models import Model
from keras.regularizers import *
def get_model():
Input_1 = Input(shape=(28, 28, 1))
Conv2D_6 = Conv2D(activation= 'relu' ,nb_col= 3,nb_filter= 32,nb_row= 3,border_mode= 'same' )(Input_1)
MaxPooling2D_4 = MaxPooling2D(strides= (2,2),border_mode= 'same' ,pool_size= (2,2))(Conv2D_6)
Dropout_1 = Dropout(p= 0.3)(MaxPooling2D_4)
Conv2D_8 = Conv2D(nb_col= 3,nb_filter= 64,nb_row= 3,border_mode= 'same' ,init= 'glorot_normal' ,activation= 'relu' )(Dropout_1)
MaxPooling2D_6 = MaxPooling2D(strides= (2,2),border_mode= 'same' ,pool_size= (2,2))(Conv2D_8)
Dropout_2 = Dropout(p= 0.3)(MaxPooling2D_6)
Conv2D_9 = Conv2D(nb_col= 3,nb_filter= 128,nb_row= 3,border_mode= 'same' ,init= 'glorot_normal' ,activation= 'relu' )(Dropout_2)
MaxPooling2D_7 = MaxPooling2D(border_mode= 'same' ,pool_size= (2,2))(Conv2D_9)
Flatten_2 = Flatten()(MaxPooling2D_7)
Dropout_3 = Dropout(p= 0.3)(Flatten_2)
Dense_4 = Dense(activation= 'relu' ,init= 'glorot_normal' ,output_dim= 625)(Dropout_3)
Dropout_4 = Dropout(p= 0.5)(Dense_4)
Dense_5 = Dense(activation= 'softmax' ,output_dim= 10)(Dropout_4)
return Model([Input_1],[Dense_5])
from keras.optimizers import *
def get_optimizer():
return Adadelta()
def get_loss_function():
return 'categorical_crossentropy'
def get_batch_size():
return 64
def get_num_epoch():
return 10
def get_data_config():
return {"mapping": {"Image": {"port": "InputPort0", "type": "Image"}, "Digit Label": {"port": "OutputPort0", "type": "Categorical"}}, "samples": {"split": 1, "validation": 14000, "test": 14000, "training": 42000}, "dataset": {"samples": 70000, "type": "public", "name": "mnist"}, "datasetLoadOption": "batch", "numPorts": 1}