class Create_model(Model):
def __init__(self, chanDim=-1):
super(Create_model, self).__init__()
self.conv1A = Conv2D(16, 3, input_shape = (150, 150, 3))
self.act1A = Activation("relu")
self.pool1A = MaxPooling2D(2)
self.conv1B = Conv2D(32, 3)
self.act1B = Activation("relu")
self.pool1B = MaxPooling2D(pool_size=(2, 2))
self.conv1C = Conv2D(64, 3)
self.act1C = Activation("relu")
self.pool1C = MaxPooling2D(2)
self.flatten = Flatten()
self.dense2A = Dense(512)
self.act2A = Activation("relu")
self.dropout = Dropout(0.5)
self.dense2B = Dense(1)
self.sigmoid = Activation("sigmoid")
def call(self, inputs):
x = self.conv1A(inputs)
x = self.act1A(x)
x = self.pool1A(x)
x = self.conv1B(x)
x = self.act1B(x)
x = self.pool1B(x)
x = self.conv1C(x)
x = self.act1C(x)
x = self.pool1C(x)
x = self.flatten(x)
x = self.dense2A(x)
x = self.act2A(x)
x = self.dropout(x)
x = self.dense2B(x)
x = self.sigmoid(x)
return x