from tensorflow.python.ops import partitioned_variables

  dropout = params.get("dropout")
  gradient_clip_norm = params.get("gradient_clip_norm")
  num_ps_replicas = config.num_ps_replicas if config else 0
  embedding_lr_multipliers = params.get("embedding_lr_multipliers", {})

  features = _get_feature_dict(features)
  parent_scope = "dnn"

  input_layer_partitioner = (partitioned_variables.min_max_variable_partitioner(
      max_partitions=num_ps_replicas, min_slice_size=64 << 20))
  input_layer_scope = parent_scope + "/input_from_feature_columns"
  with variable_scope.variable_scope(
      input_layer_scope,
      values=list(six.itervalues(features)),
      partitioner=input_layer_partitioner) as scope:
    net = layers.input_from_feature_columns(
