我正在使用layoutlmv2模型。假设我有一张图片和它的标注文件,我想仅在这张图片上进行预测。那么我该如何进行预测呢?是否已经有现成的脚本用于推理?我之前有layoutlmv1模型的经验。
y4ekin9u1#
你需要首先对输入进行分词和填充,然后从模型中获取预测结果。你可以创建自己的评估函数,在填充和分词之后执行相同的操作。
wgxvkvu92#
嘿,我调整了数据加载器,并能够在标记和预测的词级别上获取结果。我已经为v1编写了一个脚本,所以如果能够像v1中创建的test_image.txt文件一样获取测试图像,并在词级别上获得预测logits,那就太好了。
6bc51xsx3#
既然你已经在token_id级别有了预测,你可以尝试使用tokenizer.convert_ids_to_tokens(input_id)将input_id转换为单词。你可能需要将单词重新组合,因为分词器可能会将单词分成多个部分。
tokenizer.convert_ids_to_tokens(input_id)
u0njafvf4#
感谢@sherlocked27的支持。让我尝试这个解决方案。
xmd2e60i5#
我尝试了你告诉我的方法,但仍然出错。你能看一下这个图片并提些建议吗?
$x_1^c_0 d_1^x$
vmjh9lq96#
如果已经是一个Tensor,移除.tensor可以解决错误,但这是一个权宜之计。
images_input = ( (images if torch.is_tensor(images) else images.tensor) - self.pixel_mean )
你也可以检查一下,我没有尝试过这样初始化,但它可能会起作用,因为应该是ImageList,但一些初始化导致了问题,它是一个Tensor。
6条答案
按热度按时间y4ekin9u1#
你需要首先对输入进行分词和填充,然后从模型中获取预测结果。你可以创建自己的评估函数,在填充和分词之后执行相同的操作。
wgxvkvu92#
嘿,我调整了数据加载器,并能够在标记和预测的词级别上获取结果。我已经为v1编写了一个脚本,所以如果能够像v1中创建的test_image.txt文件一样获取测试图像,并在词级别上获得预测logits,那就太好了。
6bc51xsx3#
既然你已经在token_id级别有了预测,你可以尝试使用
tokenizer.convert_ids_to_tokens(input_id)
将input_id转换为单词。你可能需要将单词重新组合,因为分词器可能会将单词分成多个部分。u0njafvf4#
感谢@sherlocked27的支持。让我尝试这个解决方案。
xmd2e60i5#
我尝试了你告诉我的方法,但仍然出错。你能看一下这个图片并提些建议吗?
$x_1^c_0 d_1^x$
vmjh9lq96#
如果已经是一个Tensor,移除.tensor可以解决错误,但这是一个权宜之计。
你也可以检查一下,我没有尝试过这样初始化,但它可能会起作用,因为应该是ImageList,但一些初始化导致了问题,它是一个Tensor。