Пример #1
0
 def build_model_multilingual(cls, args, task):
     """Build a new multilingual model instance."""
     encoders = []
     for lang in args.multiling_encoder_lang:
         d = task.source_dictionaries.get(lang, None)
         if d is not None:
             encoders.append(RNNModel.build_encoder(args, d))
         else:
             encoders.append(None)
     encoder = MultilingualEncoder(
         task.source_dictionary,
         encoders,
         hidden_dim=args.encoder_hidden_dim,
         num_layers=args.encoder_layers,
         rescale_grads=args.multiling_rescale_grads,
     )
     decoders = []
     for lang in args.multiling_decoder_lang:
         d = task.target_dictionaries.get(lang, None)
         if d is not None:
             decoders.append(RNNModel.build_decoder(args, None, d))
         else:
             decoders.append(None)
     decoder = MultilingualDecoder(
         task.target_dictionary,
         decoders,
         hidden_dim=args.encoder_hidden_dim,
         rescale_grads=args.multiling_rescale_grads,
     )
     return cls(task, encoder, decoder)
Пример #2
0
 def build_model_multilingual(cls, args, src_dict, dst_dict):
     """Build a new multilingual model instance."""
     encoders = []
     src_dict = pytorch_translate_dictionary.MaxVocabDictionary()
     for dict_path in args.multiling_source_vocab_file:
         d = pytorch_translate_dictionary.Dictionary.load(dict_path)
         src_dict.push(d)
         encoders.append(RNNModel.build_encoder(args, d))
     encoder = MultilingualEncoder(
         src_dict,
         encoders,
         hidden_dim=args.encoder_hidden_dim,
         num_layers=args.encoder_layers,
         rescale_grads=args.multiling_rescale_grads,
     )
     decoders = []
     dst_dict = pytorch_translate_dictionary.MaxVocabDictionary()
     for dict_path in args.multiling_target_vocab_file:
         d = pytorch_translate_dictionary.Dictionary.load(dict_path)
         dst_dict.push(d)
         decoders.append(RNNModel.build_decoder(args, None, d))
     decoder = MultilingualDecoder(
         dst_dict,
         decoders,
         hidden_dim=args.encoder_hidden_dim,
         rescale_grads=args.multiling_rescale_grads,
     )
     return cls(encoder, decoder)