simpleml.models.classifiers.keras.seq2seq

Seq2Seq Keras classifiers

Module Contents

Classes

KerasEncoderDecoderClassifier

Specific subset of Seq2Seq models that contain encoder and decoder architectures

KerasEncoderDecoderStateClassifier

Specific subset of Seq2Seq models that contain encoder and decoder architectures

KerasEncoderDecoderStatelessClassifier

Specific subset of Seq2Seq models that contain encoder and decoder architectures

KerasSeq2SeqClassifier

Base class for sequence to sequence models. Differ from traditional models

Attributes

__author__

simpleml.models.classifiers.keras.seq2seq.__author__ = Elisha Yadgaran[source]
class simpleml.models.classifiers.keras.seq2seq.KerasEncoderDecoderClassifier(use_training_generator=False, training_generator_params=None, use_validation_generator=False, validation_generator_params=None, use_sequence_object=False, **kwargs)[source]

Bases: KerasSeq2SeqClassifier

Specific subset of Seq2Seq models that contain encoder and decoder architectures

Pass default save method as Keras’s persistence pattern

Parameters
  • use_training_generator (Bool) – Whether to propagate use of a generator object when training – does not allow for using a generator in production – only fit_generator

  • use_validation_generator (Bool) – Whether to ALSO use a generator for validation data while training. Does nothing if use_training_generator is false

  • training_generator_params – parameters to pass to the generator method for train split - normal fit(_generator) params should be passed as params={}

  • validation_generator_params – parameters to pass to the generator method for validation split - normal fit(_generator) params should be passed as params={}

check_for_models(self, rebuild=False)[source]
decode(self, X)[source]
encode(self, X)[source]
class simpleml.models.classifiers.keras.seq2seq.KerasEncoderDecoderStateClassifier(use_training_generator=False, training_generator_params=None, use_validation_generator=False, validation_generator_params=None, use_sequence_object=False, **kwargs)[source]

Bases: KerasEncoderDecoderClassifier

Specific subset of Seq2Seq models that contain encoder and decoder architectures with a state value to be propagated for each decoder timestep (eg LSTM/GRU decoder states)

Pass default save method as Keras’s persistence pattern

Parameters
  • use_training_generator (Bool) – Whether to propagate use of a generator object when training – does not allow for using a generator in production – only fit_generator

  • use_validation_generator (Bool) – Whether to ALSO use a generator for validation data while training. Does nothing if use_training_generator is false

  • training_generator_params – parameters to pass to the generator method for train split - normal fit(_generator) params should be passed as params={}

  • validation_generator_params – parameters to pass to the generator method for validation split - normal fit(_generator) params should be passed as params={}

_predict(self, X, end_index, max_length=None, **kwargs)[source]

Inference network differs from training one so gets established dynamically at inference time. Does NOT get persisted since the weights are duplicative to the training ones. And the training network can in theory be updated with new training data later

Runs full encoder/decoder loop 1) Encodes input into initial decoder state 2) Loops through decoder state until:

  • End token is predicted

  • Max length is reached

class simpleml.models.classifiers.keras.seq2seq.KerasEncoderDecoderStatelessClassifier(use_training_generator=False, training_generator_params=None, use_validation_generator=False, validation_generator_params=None, use_sequence_object=False, **kwargs)[source]

Bases: KerasEncoderDecoderStateClassifier

Specific subset of Seq2Seq models that contain encoder and decoder architectures withOUT a state value to be propagated for each decoder timestep. These architectures typically use repeat vectors to duplicate decoder inputs for later timesteps

Pass default save method as Keras’s persistence pattern

Parameters
  • use_training_generator (Bool) – Whether to propagate use of a generator object when training – does not allow for using a generator in production – only fit_generator

  • use_validation_generator (Bool) – Whether to ALSO use a generator for validation data while training. Does nothing if use_training_generator is false

  • training_generator_params – parameters to pass to the generator method for train split - normal fit(_generator) params should be passed as params={}

  • validation_generator_params – parameters to pass to the generator method for validation split - normal fit(_generator) params should be passed as params={}

_predict(self, X, end_index, max_length=None, **kwargs)[source]

Inference network differs from training one so gets established dynamically at inference time. Does NOT get persisted since the weights are duplicative to the training ones. And the training network can in theory be updated with new training data later

Runs full encoder/decoder loop 1) Encodes input into initial decoder state 2) Loops through decoder state until:

  • End token is predicted

  • Max length is reached

class simpleml.models.classifiers.keras.seq2seq.KerasSeq2SeqClassifier(use_training_generator=False, training_generator_params=None, use_validation_generator=False, validation_generator_params=None, use_sequence_object=False, **kwargs)[source]

Bases: simpleml.models.classifiers.keras.model.KerasModelClassifier

Base class for sequence to sequence models. Differ from traditional models because training and inference use different architectures

Pass default save method as Keras’s persistence pattern

Parameters
  • use_training_generator (Bool) – Whether to propagate use of a generator object when training – does not allow for using a generator in production – only fit_generator

  • use_validation_generator (Bool) – Whether to ALSO use a generator for validation data while training. Does nothing if use_training_generator is false

  • training_generator_params – parameters to pass to the generator method for train split - normal fit(_generator) params should be passed as params={}

  • validation_generator_params – parameters to pass to the generator method for validation split - normal fit(_generator) params should be passed as params={}

_predict(self, X)[source]

Inference network differs from training one so gets established dynamically at inference time. Does NOT get persisted since the weights are duplicative to the training ones. And the training network can in theory be updated with new training data later

abstract build_inference_network(self, model)[source]

Inference network - Differs from training one so gets established dynamically at inference time

return: inference_model(s) rtype: self.external_model.__class__

check_for_models(self, rebuild=False)[source]
predict(self, X, **kwargs)[source]

Seq2Seq models have unpredictable results so overwrite batch process and return arrays instead of fixed size matrix (nXm vs nX1)