code: def standard_lstm_lm_200(dataset_name=None, vocab=None, pretrained=False, ctx=cpu(),
                           root=os.path.join(get_home_dir(), 'models'), **kwargs):
      r
      predefined_args = {'embed_size': 200,
                         'hidden_size': 200,
                         'mode': 'lstm',
                         'num_layers': 2,
                         'tie_weights': True,
                         'dropout': 0.2}
      mutable_args = ['dropout']
      assert all((k not in kwargs or k in mutable_args) for k in predefined_args), \
             'Cannot override predefined model settings.'
      predefined_args.update(kwargs)
      return _get_rnn_model(StandardRNN, 'standard_lstm_lm_200', dataset_name, vocab, pretrained,
                            ctx, root, **predefined_args)
docs: r"""Standard 2-layer LSTM language model with tied embedding and output weights.
  
      Both embedding and hidden dimensions are 200.
  
      Parameters
      ----------
      dataset_name : str or None, default None
          The dataset name on which the pre-trained model is trained.
          Options are 'wikitext-2'. If specified, then the returned vocabulary is extracted from
          the training set of the dataset.
          If None, then vocab is required, for specifying embedding weight size, and is directly
          returned.
          The pre-trained model achieves 108.25/102.26 ppl on Val and Test of wikitext-2 respectively.
      vocab : gluonnlp.Vocab or None, default None
          Vocabulary object to be used with the language model.
          Required when dataset_name is not specified.
      pretrained : bool, default False
          Whether to load the pre-trained weights for model.
      ctx : Context, default CPU
          The context in which to load the pre-trained weights.
      root : str, default '$MXNET_HOME/models'
          Location for keeping the model parameters.
          MXNET_HOME defaults to '~/.mxnet'.
  
      Returns
      -------
      gluon.Block, gluonnlp.Vocab