code: def init_model(
      self,
      preprocessor: Preprocessor,
      vectorizer: Vectorizer,
      embedding_weights_encoder=None,
      embedding_weights_decoder=None,
  ) -> None:
      self.preprocessor = preprocessor
      self.vectorizer = vectorizer
      self.embedding_shape_in = (
          self.vectorizer.encoding_dim,
          self.embedding_size,
      )
      self.embedding_shape_out = (
          self.vectorizer.decoding_dim,
          self.embedding_size,
      )
      self.encoder = Encoder(
          self.embedding_shape_in,
          self.lstm_size,
          embedding_trainable=self.embedding_encoder_trainable,
          embedding_weights=embedding_weights_encoder,
      )
      self.decoder = Decoder(
          self.embedding_shape_out,
          self.lstm_size,
          embedding_trainable=self.embedding_decoder_trainable,
          embedding_weights=embedding_weights_decoder,
      )
      self.encoder.compile(optimizer=self.optimizer)
      self.decoder.compile(optimizer=self.optimizer)
  
imports: import os
  import pickle
  from typing import Callable, Dict, Union
  import numpy
  import tensorflow
  from headliner.model.basic_model import Encoder, Decoder
  from headliner.model.summarizer import Summarizer
  from headliner.preprocessing.preprocessor import Preprocessor
  from headliner.preprocessing.vectorizer import Vectorizer
label_desc: Use image node_id 2 for calling the BasicSummarizer obj's underlying member method code with example usage: obj.init_model(preprocessor, vectorizer, embedding_weights_encoder, embedding_weights_decoder) without return types