class_docstr: A data provider interface.
  
  The Provider abstract class that defines three function for Estimator related
  training that return the following:
    * An input function for training and test input functions that return
      features and label batch tensors. It is responsible for parsing the
      dataset and buffering data.
    * The feature_columns for this dataset.
    * The number of classes.
  
  For keras related training, we assume multiclass classification, and the user
  only needs to implement the following function:
    * def get_keras_input(self, batch_size):
        Args:
          batch_size - an integer holding the batch size.
  
        Returns:
          x, y, and validation_data used for keras fit
    * The feature_columns for this dataset (Please note that you need to supply
      Keras compatible feature columns.
    * The number of classes.
  
  Example of both interfaces implemented can be found in csv_data.py
class_docstr_tok: ["A","data","provider","interface",".","The","Provider","abstract","class","that","defines","three","function","for","Estimator","related","training","that","return","the","following",":","*","An","input","function","for","training","and","test","input","functions","that","return","features","and","label","batch","tensors",".","It","is","responsible","for","parsing","the","dataset","and","buffering","data",".","*","The","feature_columns","for","this","dataset",".","*","The","number","of","classes",".","For","keras","related","training",",","we","assume","multiclass","classification",",","and","the","user","only","needs","to","implement","the","following","function",":","*","def","get_keras_input","(","self",",","batch_size",")",":","Args",":","batch_size","-","an","integer","holding","the","batch","size",".","Returns",":","x",",","y",",","and","validation_data","used","for","keras","fit","*","The","feature_columns","for","this","dataset","(","Please","note","that","you","need","to","supply","Keras","compatible","feature","columns",".","*","The","number","of","classes",".","Example","of","both","interfaces","implemented","can","be","found","in","csv_data.py"]
docstr: Returns a `List` of feature columns.
docstr_tok: ["Returns","a","`","List","`","of","feature","columns","."]
code: def get_feature_columns(
      self,
  ) -> List[
      Union[
          feature_column._FeatureColumn,  # pylint: disable=protected-access
          feature_column_v2.FeatureColumn,
      ]
  ]:
      """Returns a `List` of feature columns."""
  
      raise NotImplementedError(
          "You must either implement get_feature_columns, or "
          "override get_input_layer_fn."
      )
  
file_path: model_search/model_search/data/data.py
imports: import abc
  import functools
  from typing import List, Union
  from model_search import registry
  from model_search.data import utils
  from tensorflow.python.feature_column import feature_column
  from tensorflow.python.feature_column import feature_column_v2
label_desc: Use image node_id 4 for calling the Provider obj's underlying member method code with example usage: obj.get_feature_columns() without return types