def get_model(model_type, input_shape, learning_rate, weight_decay, optimizer, momentum): input_tensor = Input(shape=input_shape) if model_type == 'resnet': base_model = keras.applications.resnet50.ResNet50( include_top=False, weights='imagenet', input_tensor=input_tensor, input_shape=input_shape, classes=None) x = Flatten()(base_model.output) predictions = Dense(NUM_CLASSES, activation='softmax')(x) model = Model(inputs=base_model.input, outputs=predictions) elif model_type == 'vgg': base_model = keras.applications.vgg19.VGG19(include_top=False, weights=None, input_tensor=input_tensor, input_shape=input_shape, classes=None) x = Flatten()(base_model.output) predictions = Dense(NUM_CLASSES, activation='softmax')(x) model = Model(inputs=base_model.input, outputs=predictions) else: model = get_custom_model(input_shape, learning_rate, weight_decay, optimizer, momentum) return model
def get_model(model_type): print(f'====== Getting model architecture: {model_type} ======') input_tensor = Input(shape=input_shape) if model_type == 'resnet': base_model = keras.applications.resnet50.ResNet50( include_top=False, weights='imagenet', input_tensor=input_tensor, input_shape=input_shape, classes=None) x = Flatten()(base_model.output) predictions = Dense(NUM_CLASSES, activation='softmax')(x) model = Model(inputs=base_model.input, outputs=predictions) elif model_type == 'vgg': base_model = keras.applications.vgg19.VGG19(include_top=False, weights=None, input_tensor=input_tensor, input_shape=input_shape, classes=None) x = Flatten()(base_model.output) predictions = Dense(NUM_CLASSES, activation='softmax')(x) model = Model(inputs=base_model.input, outputs=predictions) else: model = get_custom_model(input_shape) return model