从 pytorch 的 torchtext 库保存词汇对象

Lat*_*ent 2 python pytorch torchtext

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

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

训练后,在生产中提供模型时,我如何保存 TEXT 对象?在预测时我需要它来索引单词标记

\n\n
[TEXT.vocab.stoi[t] for t in tokenized\xd7\x81_sentence]\n
Run Code Online (Sandbox Code Playgroud)\n\n

我是否遗漏了一些东西并且没有必要握住该物体?除了模型权重之外,我还需要其他文件吗?

\n

see*_*eel 7

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

保存文件的示例:

torch.save(vocab_obj, 'vocab_obj.pth')
Run Code Online (Sandbox Code Playgroud)

要再次加载文件:

vocab_obj = torch.load('vocab_obj.pth')
Run Code Online (Sandbox Code Playgroud)