示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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