class_docstr: Derive a specific sub-class of a VAE for a sentence model. 
code: def tie_modules(self):
      # This looks dumb, but is actually dumber than you might realise.
      # A linear(a, b) module has a [b x a] weight matrix, but an embedding(a, b)
      # module has a [a x b] weight matrix. So when we want the transpose at
      # decoding time, we just use the weight matrix as is.
      self.dec.toVocabSize.weight = self.enc.embedding.weight
  
imports: import json
  import os
  import numpy
  import torch
  import torch.distributions
  import torch.nn
  import torch.nn.functional
  import torch.utils.data
  from torch.utils.data import DataLoader
  from datasets import CUBSentences
  from utils import Constants, FakeCategorical
  from .vae import VAE
label_desc: Use image node_id 2 for calling the CUB_Sentence_ft obj's underlying member method code with example usage: obj.tie_modules() without return types