Machine learning 使用torchtext进行推理

Machine learning 使用torchtext进行推理,machine-learning,nlp,pytorch,torchtext,Machine Learning,Nlp,Pytorch,Torchtext,我想知道使用torchtext进行推理的正确方法是什么 让我们假设我已经训练了模型,并且使用构建的词汇表转储了所有字段。似乎下一步是使用加载单个示例。不知何故,我应该使用加载的字段对其进行数字化,并创建一个迭代器 我希望您能举一些简单的例子,使用torchtext进行推理。对于经过培训的模型和词汇表(这是文本字段的一部分,您不必保存整个课程): def read_vocab(路径): #阅读词汇 进口泡菜 pkl_文件=打开(路径“rb”) vocab=pickle.load(pkl_文件) p

我想知道使用
torchtext
进行推理的正确方法是什么

让我们假设我已经训练了模型,并且使用构建的词汇表转储了所有字段。似乎下一步是使用加载单个示例。不知何故,我应该使用加载的字段对其进行数字化,并创建一个迭代器


我希望您能举一些简单的例子,使用
torchtext
进行推理。

对于经过培训的模型和词汇表(这是文本字段的一部分,您不必保存整个课程):

def read_vocab(路径):
#阅读词汇
进口泡菜
pkl_文件=打开(路径“rb”)
vocab=pickle.load(pkl_文件)
pkl_文件.close()
回音
def load_model_和_vocab():
进口火炬
导入操作系统路径
my_path=os.path.abspath(os.path.dirname(u文件_u))
vocab_path=os.path.join(我的路径,vocab_文件)
权重路径=os.path.join(我的路径,权重)
vocab=读取vocab(vocab路径)
模型=分类器(vocab_size=len(vocab))
模型荷载状态荷载(火炬荷载(重量路径))
model.eval()
返回模型
def预测(模型、词汇、句子):
标记化=[w.text.lower()表示nlp(句子)中的w]#标记化句子
索引=[vocab.stoi[t]表示标记化中的t]#转换为整数序列
长度=[len(索引)]#计算字数
张量=火炬.长传感器(索引).to('cpu')#转换为张量
张量=张量。unsqueze(1)。T#以批的形式重塑,字数
长度张量=火炬。长传感器(长度)#转换为张量
预测=模型(张量、长度张量)#预测
返回轮(1-prediction.item())
“分类器”是我为模型定义的类

要保存词汇表pkl:

def save_vocab(vocab):
进口泡菜
输出=打开('vocab.pkl','wb')
pickle.dump(vocab,输出)
output.close()
为了在培训后保存模型,您可以使用:

torch.save(model.state_dict(),“saved_weights.pt”)

告诉我它是否对你有用

对于经过培训的模型和词汇表(作为文本字段的一部分,您不必保存整个类):

def read_vocab(路径):
#阅读词汇
进口泡菜
pkl_文件=打开(路径“rb”)
vocab=pickle.load(pkl_文件)
pkl_文件.close()
回音
def load_model_和_vocab():
进口火炬
导入操作系统路径
my_path=os.path.abspath(os.path.dirname(u文件_u))
vocab_path=os.path.join(我的路径,vocab_文件)
权重路径=os.path.join(我的路径,权重)
vocab=读取vocab(vocab路径)
模型=分类器(vocab_size=len(vocab))
模型荷载状态荷载(火炬荷载(重量路径))
model.eval()
返回模型
def预测(模型、词汇、句子):
标记化=[w.text.lower()表示nlp(句子)中的w]#标记化句子
索引=[vocab.stoi[t]表示标记化中的t]#转换为整数序列
长度=[len(索引)]#计算字数
张量=火炬.长传感器(索引).to('cpu')#转换为张量
张量=张量。unsqueze(1)。T#以批的形式重塑,字数
长度张量=火炬。长传感器(长度)#转换为张量
预测=模型(张量、长度张量)#预测
返回轮(1-prediction.item())
“分类器”是我为模型定义的类

要保存词汇表pkl:

def save_vocab(vocab):
进口泡菜
输出=打开('vocab.pkl','wb')
pickle.dump(vocab,输出)
output.close()
为了在培训后保存模型,您可以使用:

torch.save(model.state_dict(),“saved_weights.pt”)
告诉我它是否对你有用