找不到_token_unk_id
guijuzhejiang opened this issue · comments
执行对联_train.py时,报下面的错误了。全局找了一下_token_unk_id,好像忘了定义吧。
File "/home/workspace/pycharm/bert_seq2seq/bert_seq2seq/tokenizer.py", line 191, in token_to_id
return self._token_dict.get(token, self._token_unk_id)
AttributeError: 'Tokenizer' object has no attribute '_token_unk_id'
我刚跑了下我的,没有问题呀 你看看字典下载的对么?
然后肯定是这里出错了self._token_dict_inv = {v: k for k, v in token_dict.items()} for token in ['pad', 'cls', 'sep', 'unk', 'mask']: try: _token_id = token_dict[getattr(self, "_token_"+str(token))] # print(_token_id) setattr(self, "_token_"+str(token)+"_id", _token_id) except Exception as e : # print(e) # print("err") pass self._vocab_size = len(token_dict)
你可以打印打印错误在这里。
代码在tokenizer.py 的176行左右
确实是我的问题,我在训练日语对话模型,日语的vocab和分词方式和中文不同。中文是单个字分词,日语是按词分的。已经修改了,谢谢提醒。:)