920232796 / bert_seq2seq

pytorch实现 Bert 做seq2seq任务,使用unilm方案,现在也可以做自动摘要,文本分类,情感分析,NER,词性标注等任务,支持t5模型,支持GPT2进行文章续写。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

找不到_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和分词方式和中文不同。中文是单个字分词,日语是按词分的。已经修改了,谢谢提醒。:)