File size: 3,582 Bytes
9ba9ac1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
from tensorflow.data import Dataset
import tensorflow.keras as keras
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.layers import (
    Conv2D,
    Input,
    MaxPooling2D,
    Dense,
    Dropout,
    MaxPool1D,
    Flatten,
    AveragePooling1D,
    BatchNormalization,
)
from tensorflow.keras import Model
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input, Add, Activation, Dropout, Flatten, Dense
from tensorflow.keras.layers import Convolution2D, MaxPooling2D, AveragePooling2D
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.regularizers import l2
from tensorflow.keras import backend as K
from tensorflow.keras.optimizers import SGD
import warnings

warnings.filterwarnings("ignore")


def basemodel(weight_decay):
    # 2 hidden layers
    model_input = Input(
        shape=(
            32,
            32,
            1,
        )
    )
    model = Conv2D(
        32,
        kernel_size=(3, 3),
        kernel_regularizer=l2(weight_decay),
        activation="relu",
    )(model_input)
    model = Conv2D(
        64, kernel_size=(3, 3), kernel_regularizer=l2(weight_decay), activation="relu"
    )(model)
    model = MaxPooling2D(pool_size=(2, 2))(model)
    model = BatchNormalization()(model)
    model = Flatten()(model)
    model = Dense(4, kernel_regularizer=l2(weight_decay), activation="softmax")(model)
    model = Model(inputs=model_input, outputs=model)
    return model


def model_2(weight_decay):
    model_input = Input(
        shape=(
            32,
            32,
            1,
        )
    )
    model = Conv2D(
        32,
        kernel_size=(3, 3),
        kernel_regularizer=l2(weight_decay),
        activation="relu",
    )(model_input)
    model = Conv2D(
        64, kernel_size=(3, 3), kernel_regularizer=l2(weight_decay), activation="relu"
    )(model)
    model = MaxPooling2D(pool_size=(2, 2))(model)
    model = BatchNormalization()(model)
    model = Conv2D(
        128, kernel_size=(3, 3), kernel_regularizer=l2(weight_decay), activation="relu"
    )(model)
    model = MaxPooling2D(pool_size=(2, 2))(model)
    model = BatchNormalization()(model)
    model = Flatten()(model)
    model = Dense(4, kernel_regularizer=l2(weight_decay), activation="softmax")(model)
    model = Model(inputs=model_input, outputs=model)
    return model


def model_3(weight_decay):
    # 4 hidden layers
    model_input = Input(
        shape=(
            32,
            32,
            1,
        )
    )
    model = Conv2D(
        32,
        kernel_size=(3, 3),
        kernel_regularizer=l2(weight_decay),
        activation="relu",
    )(model_input)
    model = Conv2D(
        64, kernel_size=(3, 3), kernel_regularizer=l2(weight_decay), activation="relu"
    )(model)
    model = MaxPooling2D(pool_size=(2, 2))(model)
    model = BatchNormalization()(model)
    model = Conv2D(
        128, kernel_size=(3, 3), kernel_regularizer=l2(weight_decay), activation="relu"
    )(model)
    model = MaxPooling2D(pool_size=(2, 2))(model)
    model = BatchNormalization()(model)
    model = Conv2D(
        256, kernel_size=(3, 3), kernel_regularizer=l2(weight_decay), activation="relu"
    )(model)
    model = MaxPooling2D(pool_size=(2, 2))(model)
    model = BatchNormalization()(model)
    model = Flatten()(model)
    model = Dense(4, kernel_regularizer=l2(weight_decay), activation="softmax")(model)
    model = Model(inputs=model_input, outputs=model)
    return model