-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodel_q3.py
86 lines (77 loc) · 3.57 KB
/
model_q3.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
from keras.models import Sequential
from keras.layers.core import Flatten, Dense, Dropout
from keras.layers.convolutional import Convolution2D, MaxPooling2D, ZeroPadding2D
from keras.optimizers import SGD
from keras.layers import Activation
from keras.layers.normalization import BatchNormalization
import cv2, numpy as np
def VGG_16(weights_path=None):
model = Sequential()
model.add(ZeroPadding2D((1,1), input_shape=(1,224,224), name='conv1_pad1_finetune'))
model.add(Convolution2D(64, 3, 3,name='conv1_act1_finetune'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(ZeroPadding2D((1,1),name='conv1_pad2'))
model.add(Convolution2D(64, 3, 3,name='conv1_act2'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(MaxPooling2D((2,2), strides=(2,2),name='conv1_max'))
model.add(ZeroPadding2D((1,1),name='conv2_pad1'))
model.add(Convolution2D(128, 3, 3,name='conv2_act1'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(ZeroPadding2D((1,1),name='conv2_pad2'))
model.add(Convolution2D(128, 3, 3,name='conv2_act2'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(MaxPooling2D((2,2), strides=(2,2),name='conv2_max'))
model.add(ZeroPadding2D((1,1),name='conv3_pad1'))
model.add(Convolution2D(256, 3, 3,name='conv3_act1'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(ZeroPadding2D((1,1),name='conv3_pad2'))
model.add(Convolution2D(256, 3, 3,name='conv3_act2'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(ZeroPadding2D((1,1),name='conv3_pad3'))
model.add(Convolution2D(256, 3, 3,name='conv3_act3'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(MaxPooling2D((2,2), strides=(2,2),name='conv3_max'))
model.add(ZeroPadding2D((1,1),name='conv4_pad1'))
model.add(Convolution2D(512, 3, 3,name='conv4_act1'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(ZeroPadding2D((1,1),name='conv4_pad2'))
model.add(Convolution2D(512, 3, 3,name='conv4_act2'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(ZeroPadding2D((1,1),name='conv4_pad3'))
model.add(Convolution2D(512, 3, 3,name='conv4_act3'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(MaxPooling2D((2,2), strides=(2,2),name='conv4_max'))
model.add(ZeroPadding2D((1,1),name='conv5_pad1'))
model.add(Convolution2D(512, 3, 3,name='conv5_act1'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(ZeroPadding2D((1,1),name='conv5_pad2'))
model.add(Convolution2D(512, 3, 3,name='conv5_act2'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(ZeroPadding2D((1,1),name='conv5_pad3'))
model.add(Convolution2D(512, 3, 3,name='conv5_act3'))
model.add(BatchNormalization(axis=1))
model.add(Activation('relu'))
model.add(MaxPooling2D((2,2), strides=(2,2),name='conv5_max'))
model.add(Flatten(name='fc_flatten_finetune'))
# model.add(Dense(4096,name='fc_act1_finetune'))
# model.add(BatchNormalization(axis=1))
# model.add(Activation('relu'))
# model.add(Dropout(0.5,name='fc_dp1_finetune'))
# model.add(Dense(4096,name='fc_act2_finetune'))
# model.add(BatchNormalization(axis=1))
model.summary()
if weights_path:
model.load_weights(weights_path, by_name=True)
return model