从pytorch的torchtext库保存词汇表对象

2024-04-26 00:34:11 发布

您现在位置:Python中文网/ 问答频道 /正文

使用pytorch的torchtext构建文本分类模型。词汇表对象位于data.field中:

def create_tabularDataset_object(self,csv_path):
   self.TEXT = data.Field(tokenize=self.tokenizer,batch_first=True,include_lengths=True)
   self.LABEL = data.LabelField(dtype = torch.float,batch_first=True)
def get_vocab_with_glov(self,data):
   # initialize glove embeddings
   self.TEXT.build_vocab(data,min_freq=100,vectors = "glove.6B.100d")

培训后,在生产中为模型提供服务时,如何保持文本对象?在预测时,我需要它来索引单词tokens

[TEXT.vocab.stoi[t] for t in tokenizedׁ_sentence]

我是不是遗漏了什么,不需要拿着那个东西?除了模型权重之外,我还需要其他文件吗


Tags: 词汇表对象text模型文本selftruedata
2条回答

我发现我可以将其保存为pkl: 将TEXT.vocab保存为pkl有效:

def save_vocab(vocab, path):
    import pickle
    output = open(path, 'wb')
    pickle.dump(vocab, output)
    output.close()

在哪里

vocab = TEXT.vocab 

像往常一样阅读

实际上,最好的(更稳定的)方法是使用torch内置函数torch.save(*)

保存文件的示例:

torch.save(vocab_obj, 'vocab_obj.pth')

要再次加载文件,请执行以下操作:

vocab_obj = torch.load('vocab_obj.pth')

相关问题 更多 >