首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在使用ONNX推理会话时,如何通过传递“标签”来获得语言建模损失?

在使用ONNX推理会话时,如何通过传递“标签”来获得语言建模损失?
EN

Stack Overflow用户
提问于 2021-08-10 15:30:01
回答 1查看 167关注 0票数 0

当使用GPT2时,我们可以简单地传递'labels‘参数来获得损失,如下所示:

代码语言:javascript
运行
复制
import torch
from transformers import GPT2Tokenizer, GPT2LMHeadModel

tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2LMHeadModel.from_pretrained('gpt2', return_dict=True)

inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
outputs = model(**inputs, labels=inputs["input_ids"])
loss = outputs.loss

但是,不能找出如何在ONNX推理会话中获得相同的损失。我使用了下面的代码,它只返回'last_hidden_state':

代码语言:javascript
运行
复制
import onnxruntime as ort

from transformers import GPT2TokenizerFast
#tokenizer = GPT2TokenizerFast.from_pretrained("gpt2")

ort_session = ort.InferenceSession("onnx/gpt2/model.onnx")

inputs = tokenizer("Using BERT in ONNX!", return_tensors="np")
outputs = ort_session.run(["last_hidden_state"], dict(inputs))
EN

回答 1

Stack Overflow用户

发布于 2021-08-12 21:19:55

"onnx/gpt2/model.onnx“是如何生成的?

看起来PyTorch运行使用了transformers.GPT2LMHeadModel,而ORT运行使用了transformers.GPT2Model,它是一个“在没有任何特定头部的情况下输出原始隐藏状态的裸GPT2模型转换器”,并且不会返回损失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68729645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档