input: def decode_libsvm(input, num_features, dtype=_dtypes.float32, label_dtype=_dtypes.int64, name=None):
      """ Convert LibSVM input to tensors. The output consists of
      a label and a feature tensor. The shape of the label tensor
      is the same as input and the shape of the feature tensor is
      `[input_shape, num_features]`.
      >>> decode_libsvm(['1 1:1', '2 1:2'], 2, dtype=tf.float32, label_dtype=tf.int64)
      ('my_class.AA', 'my_class.BB')
      >>> decode_libsvm(['1 1:1', '2 1:2'], 2, dtype=tf.float32, label_dtype=tf.int64)
      ('my_class.AA', 'my_class.BB')
      """
output:     
      with ops.name_scope(name, "decode_libsvm", [input]) as name:
          def _parse_line(line):
              parts = line.split()
              label = label_dtype.as_dtype(parts[0])
              indices = []
              values = []
              for part in parts[1:]:
                  index, value = part.split(':')
                  indices.append(int(index) - 1)
                  values.append(dtype.as_dtype(value))
              return label, indices, values
  
          labels, indices, values = zip(*[_parse_line(line) for line in input])
          labels = ops.convert_to_tensor(labels, dtype=label_dtype)
          indices = ops.convert_to_tensor(indices, dtype=dtypes.int64)
          values = ops.convert_to_tensor(values, dtype=dtype)
  
          sparse_tensor = sparse_tensor_lib.SparseTensor(
              indices=indices,
              values=values,
              dense_shape=[len(input), num_features]
          )
          dense_tensor = sparse_ops.sparse_tensor_to_dense(sparse_tensor)
  
          return labels, dense_tensor
  