mirror of
https://github.com/wassname/multifit.git
synced 2026-09-09 11:27:26 +08:00
Validate other languages
This commit is contained in:
@@ -19,7 +19,7 @@ class XLingualCLSHyperParams(CLSHyperParams):
|
||||
super().__post_init__(*args, **kwargs)
|
||||
self.target_paths = [] if self.target_paths is None else self.target_paths
|
||||
|
||||
def load_cls_data(self, bs, force=False, use_test_for_validation=False, **kwargs):
|
||||
def get_tokenizer_args(self):
|
||||
if self.tokenizer is Tokenizers.SUBWORD:
|
||||
args = get_sentencepiece(self.base_lm_path.parent, self.base_lm_path.parent / 'train.csv',
|
||||
self.name, vocab_size=self.max_vocab, pre_rules=[], post_rules=[])
|
||||
@@ -33,6 +33,10 @@ class XLingualCLSHyperParams(CLSHyperParams):
|
||||
raise ValueError(
|
||||
f"self.tokenizer has wrong value {self.tokenizer}, Allowed values are taken from {Tokenizers}")
|
||||
|
||||
return args
|
||||
|
||||
def load_cls_data(self, bs, force=False, use_test_for_validation=False, **kwargs):
|
||||
args = self.get_tokenizer_args()
|
||||
src_path = self.dataset_path
|
||||
csv_name = self.csv_name
|
||||
tgt_paths = [Path(tgt_path) for tgt_path in self.target_paths]
|
||||
@@ -42,11 +46,6 @@ class XLingualCLSHyperParams(CLSHyperParams):
|
||||
|
||||
xcvs_name = ('x_' + csv_name)
|
||||
mixed_csv.to_csv(src_path / xcvs_name, header=None, index=False)
|
||||
|
||||
data_eval = [
|
||||
TextClasDataBunch.from_csv(path=tgt_path, csv_name=csv_name, **kwargs)
|
||||
for tgt_path in tgt_paths
|
||||
]
|
||||
|
||||
try:
|
||||
if force: raise FileNotFoundError("Forcing reloading of caches")
|
||||
@@ -72,7 +71,20 @@ class XLingualCLSHyperParams(CLSHyperParams):
|
||||
|
||||
print('Size of vocabulary:', len(data_lm.vocab.itos))
|
||||
print('First 20 words in vocab:', data_lm.vocab.itos[:20])
|
||||
return data_cls, data_lm # , data_eval
|
||||
return data_cls, data_lm
|
||||
|
||||
def validate_cls(self, save_name='cls_last', bs=40):
|
||||
args = self.get_tokenizer_args()
|
||||
data_clas, data_lm = self.load_cls_data_full(bs, use_test_for_validation=True)
|
||||
data_eval = [
|
||||
TextClasDataBunch.from_csv(path=Path(tgt_path), csv_name=self.csv_name, **args)
|
||||
for tgt_path in self.target_paths
|
||||
]
|
||||
|
||||
for data in [data_clas] + data_eval:
|
||||
learn = self.create_cls_learner(data, drop_mult=0.1)
|
||||
learn.load(save_name)
|
||||
print(f"Loss and accuracy using ({save_name}) for dataset at {data.path}:", learn.validate())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user