Transformers/PIL 图像包含 [0, 1] 范围之外的值

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

当我在图像字幕任务中运行此代码时出现错误:

trainer = Seq2SeqTrainer(
    tokenizer=feature_extractor,
    model=model,
    args=training_args,
    compute_metrics=compute_metrics,
    train_dataset=train_dataset,
    eval_dataset=val_dataset,
    data_collator=default_data_collator,
)
trainer.train()

错误:要转换为 PIL 图像的图像包含 [0, 1] 范围之外的值,得到 [-0.9764705896377563, 0.9686274528503418],无法转换为 uint8。

虽然我在这里将 numpy 数组转换为张量:

transforms1 = torchvision.transforms.Compose([torchvision.transforms.Resize(config.IMG_SIZE),
                                              torchvision.transforms.ToTensor(),
                                              torchvision.transforms.Normalize(
                                              mean=0.5,
                                             std=0.5)])
df=  pd.read_csv("/content/drive/MyDrive/captions.txt")
train_df , val_df = train_test_split(df , test_size = 0.2)
df.head()

如何解决这个问题?

image python-imaging-library huggingface-transformers caption
1个回答
0
投票

我不知道你在做什么,因为你的代码不完整,但是如果你的值在-1..+1范围内,并且需要在0..255范围内,你将需要缩放它们,像这样的:

V = ((V + 1.0) * 255/2).astype(np.uint8)
© www.soinside.com 2019 - 2024. All rights reserved.