eagle705 / pytorch-bert-crf-ner

KoBERT와 CRF로 만든 한국어 개체명인식기 (BERT+CRF based Named Entity Recognition model for Korean)
Apache License 2.0
490 stars 109 forks source link

model state_dict key missing 문제 #39

Open hjlee9182 opened 2 years ago

hjlee9182 commented 2 years ago

구글 드라이브에 있는 ./experiments/base_model_with_crf/best-epoch-16-step-1500-acc-0.993.bin ./experiments/base_model_with_crf_val/best-epoch-12-step-1000-acc-0.960.bin 파일을 가지고 model load 하여 python inference.py를 실행하였을때

둘다 아래 에러가 발생합니다. 해결방법이 어떻게 될까요??

image

Hans-digit commented 2 years ago

net.py 에서

TorchCRF 라이브러리를 load 하지 마시고,

torchcrf 라이브러리를 install 받으시고 다음의 코드를 수정하시면 정상 작동 합니다.


class KobertCRF(nn.Module):
    """ KoBERT with CRF """
    def __init__(self, config, num_classes, vocab=None) -> None:
        super(KobertCRF, self).__init__()

        if vocab is None:
            self.bert, self.vocab = get_pytorch_kobert_model()
        else:
            self.bert = BertModel(config=BertConfig.from_dict(bert_config))
            self.vocab = vocab

        self.dropout = nn.Dropout(config.dropout)
        self.position_wise_ff = nn.Linear(config.hidden_size, num_classes)
        self.crf = CRF(num_tags=num_classes, batch_first=True)