def make_model(): model = Sequential() model.add(Input(shape=input_shape)) model.add(Dense(4096)) model.add(ReLU()) model.add(Dense(4096)) model.add(ReLU()) model.add(Dense(4096)) model.add(ReLU()) model.add(Dense(4096)) model.add(ReLU()) model.add(Dense(4096)) model.add(ReLU()) model.add(Dense(10)) model.add(Softmax()) model.summary() model.compile(Adam(), 'categorical_crossentropy', 'accuracy') return model
def make_model(): model = Sequential() model.add(Input(shape=input_shape)) model.add(Conv2D(32, kernel_size=(3, 3), padding='same')) model.add(ReLU()) model.add(Dropout(0.3)) model.add(Conv2D(32, kernel_size=(3, 3), padding='same')) model.add(ReLU()) model.add(MaxPooling2D(2, 2)) model.add(Conv2D(64, kernel_size=(3, 3), padding='same')) model.add(ReLU()) model.add(Dropout(0.3)) model.add(Conv2D(64, kernel_size=(3, 3), padding='same')) model.add(ReLU()) model.add(MaxPooling2D(2, 2)) model.add(Conv2D(128, kernel_size=(3, 3), padding='same')) model.add(ReLU()) model.add(Dropout(0.3)) model.add(Conv2D(128, kernel_size=(3, 3), padding='same')) model.add(ReLU()) model.add(MaxPooling2D(2, 2)) model.add(Flatten()) model.add(Dropout(0.3)) model.add(Dense(2500, kernel_initializer='He')) model.add(ReLU()) model.add(Dropout(0.3)) model.add(Dense(1500, kernel_initializer='He')) model.add(ReLU()) model.add(Dropout(0.3)) model.add(Dense(10, kernel_initializer='He')) model.add(Softmax()) model.summary() model.compile(Adam(), 'categorical_crossentropy', 'accuracy') return model
def make_my_yolo(input_shape, num_anchors, num_classes): ori_c, ori_w, ori_h = input_shape model = Sequential() model.add(Input(shape=input_shape)) add_conv2d_bn_leaky(model, 32, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 32, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 64, 3) add_conv2d_bn_leaky(model, 64, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 64, 3) add_conv2d_bn_leaky(model, 64, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 128, 3) add_conv2d_bn_leaky(model, 128, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 128, 3) add_conv2d_bn_leaky(model, 128, 3) add_conv2d_bn_leaky(model, 128, 3) model.add(Conv2D(num_anchors * (4 + 1 + num_classes), 1, 1)) model.add(Reshape((num_anchors, (4 + 1 + num_classes), ori_w // 32, ori_h // 32))) model.add(Transpose((0, 1, 3, 4, 2))) mask = np.ones((num_anchors, 7, 7, 7), dtype=bool) mask[..., 2] = False mask[..., 3] = False model.add(MaskedSigmoid(mask)) return model
def make_darknet19(input_shape): model = Sequential() model.add(Input(shape=input_shape)) add_conv2d_bn_leaky(model, 32, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 64, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 128, 3) add_conv2d_bn_leaky(model, 64, 1) add_conv2d_bn_leaky(model, 128, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 256, 3) add_conv2d_bn_leaky(model, 128, 1) add_conv2d_bn_leaky(model, 256, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 512, 3) add_conv2d_bn_leaky(model, 256, 1) add_conv2d_bn_leaky(model, 512, 3) add_conv2d_bn_leaky(model, 256, 1) add_conv2d_bn_leaky(model, 512, 3) model.add(MaxPooling2D(2, 2)) add_conv2d_bn_leaky(model, 1024, 3) add_conv2d_bn_leaky(model, 512, 1) add_conv2d_bn_leaky(model, 1024, 3) add_conv2d_bn_leaky(model, 512, 1) add_conv2d_bn_leaky(model, 1024, 3) add_conv2d_bn_leaky(model, 1000, 1) model.add(Conv2D(5 * (4 + 1 + 1), 1, 1)) return model