class_docstr: Base class for all encoders.
  
  An encoder should return encoded representations of any columnar data.
  The procedure for this is defined inside the `encode()` method.
  
  If this encoder is expected to handle an output column, then it also needs to implement the respective `decode()` method that handles the inverse transformation from encoded representations to the final prediction in the original column space.
  
  For encoders that learn representations (as opposed to rule-based), the `prepare()` method will handle all learning logic.
  
  The `to()` method is used to move PyTorch-based encoders to and from a GPU.
  
  :param  is_target: Whether the data to encode is the target, as per the problem definition.
  :param is_timeseries_encoder: Whether encoder represents sequential/time-series data. Lightwood must provide specific treatment for this kind of encoder
  :param is_trainable_encoder: Whether the encoder must return learned representations. Lightwood checks whether this flag is present in order to pass data to the feature representation via the ``prepare`` statement. 
  
  Class Attributes:
  - is_prepared: Internal flag to signal that the `prepare()` method has been successfully executed.
  - is_nn_encoder: Whether the encoder is neural network-based.
  - dependencies: list of additional columns that the encoder might need to encode.
  - output_size: length of each encoding tensor for a single data point.
docstr: Given the approach defined in `prepare()`, encodes column data into a numerical representation to form part of the feature vector.
  
  After all columns are featurized, each encoded vector is concatenated to form a feature vector per row in the dataset.
  
  :param column_data: An iterable data structure where all the elements have type that is compatible with the encoder processing type; this may differ per encoder.
  
  :returns: The encoded representation of data, per column
docstr_tok: ["Given","the","approach","defined","in","`","prepare","(",")","`",",","encodes","column","data","into","a","numerical","representation","to","form","part","of","the","feature","vector",".","After","all","columns","are","featurized",",","each","encoded","vector","is","concatenated","to","form","a","feature","vector","per","row","in","the","dataset",".",":","param","column_data",":","An","iterable","data","structure","where","all","the","elements","have","type","that","is","compatible","with","the","encoder","processing","type",";","this","may","differ","per","encoder",".",":","returns",":","The","encoded","representation","of","data",",","per","column"]
code: def encode(self, column_data: Iterable[object]) -> torch.Tensor:
      """
      Given the approach defined in `prepare()`, encodes column data into a numerical representation to form part of the feature vector.
  
      After all columns are featurized, each encoded vector is concatenated to form a feature vector per row in the dataset.
  
      :param column_data: An iterable data structure where all the elements have type that is compatible with the encoder processing type; this may differ per encoder.
  
      :returns: The encoded representation of data, per column
      """  # noqa
      raise NotImplementedError
  
file_path: lightwood/lightwood/encoder/base.py
imports: from typing import List, Iterable
  import torch
label_desc: Use image node_id 3 for calling the BaseEncoder obj's underlying member method code with example usage: obj.encode(column_data) without return types