我在使用 Donut 模型时遇到错误:输入类型和偏差类型应该相同

问题描述 投票:0回答:1

我正在尝试使用图像解析器Donut Model从图像中提取文本。输入图像的格式似乎不正确。

我收到一条错误消息:

RuntimeError: Input type (float) and bias type (c10::BFloat16)
应该是一样的 在这条线上:

output = model.inference(image=image, prompt="<s_cord-v2>")

这是我的整个代码:

    from donut import DonutModel 
    from PIL import Image 
    import torch 

    model = DonutModel.from_pretrained("naver-clova-ix/donut-base- 
    finetuned-cord-v2") 

    if torch.cuda.is_available():
        model.half()      
        device = torch.device("cuda")      
        model.to(device)  
    else:      
        model.encoder.to(torch.bfloat16) model.eval()  

    image = Image.open("testfolder/test1.jpg").convert("RGB") 
    output = model.inference(image=image, prompt="<s_cord-v2>") 
    output

我知道图像的格式不正确,但我该如何解决这个问题?

python numpy python-imaging-library ocr donut
1个回答
0
投票

您可以通过删除代码中的 else 子句来修复错误。我想您有一个 CPU,并且 bfloat16 对于该型号可能是错误的。这段代码对我来说效果很好:

from donut import DonutModel 
from PIL import Image 
import torch 

model = DonutModel.from_pretrained("naver-clova-ix/donut-base-finetuned-cord-v2") 

if torch.cuda.is_available():
    model.half()      
    device = torch.device("cuda")      
    model.to(device)  

model.eval()  
image = Image.open("./donut/misc/sample_image_cord_test_receipt_00004.png").convert("RGB") 
output = model.inference(image=image, prompt="<s_cord-v2>") 
output
© www.soinside.com 2019 - 2024. All rights reserved.