code: def create_model(model_name: Optional[str], params: ModelParams) -> 'Sequential':
      
      if model_name and isfile(model_name):
          print('Loading from ' + model_name + '...')
          model = load_precise_model(model_name)
      else:
          from keras.layers.core import Dense
          from keras.layers.recurrent import GRU
          from keras.models import Sequential
  
          model = Sequential()
          model.add(GRU(
              params.recurrent_units, activation='linear',
              input_shape=(pr.n_features, pr.feature_size), dropout=params.dropout, name='net'
          ))
          model.add(Dense(1, activation='sigmoid'))
  
      load_keras()
      metrics = ['accuracy'] + params.extra_metrics * [false_pos, false_neg]
      set_loss_bias(params.loss_bias)
      for i in model.layers[:params.freeze_till]:
          i.trainable = False
      model.compile('rmsprop', weighted_log_loss, metrics=(not params.skip_acc) * metrics)
      return model
docs: Load or create a precise model
  
      Args:
          model_name: Name of model
          params: Parameters used to create the model
  
      Returns:
          model: Loaded Keras model