【问题标题】:Evaluating pytorch pretrained model using a single image from a dataset使用数据集中的单个图像评估 pytorch 预训练模型
【发布时间】:2022-10-24 03:23:32
【问题描述】:

有人可以帮我解决这个问题吗:我尝试使用 ML 模型评估预训练图像,我在这篇文章的底部收到错误状态。

据我了解,pytorch 模型希望数据采用以下格式:batch_channel、通道、高度、长度。我将张量修改为这种形状,但我仍然得到那个错误。

有人可以向我解释为什么会发生此错误吗?

我对编码和 ML 很陌生,所以如果这个问题不是很具体,我很抱歉。

from monai.transforms import AddChannel
from skimage.io import imread
import numpy as np
import cv2
from torch.utils.data import DataLoader
from torchvision import models


img_array = imread(train_imageinfo_list[0][0])


resized_img = cv2.resize(img_array, (224, 224))
img_tensor = torch.from_numpy(resized_img)
channel_adder = AddChannel()
channel_image = channel_adder(img_tensor)
batch_image = channel_adder(channel_image)
img_tensor = batch_image
model= models.vgg16()
model(img_tensor)
eval(model)

错误:RuntimeError:给定组 = 1,大小为 [64、3、3、3] 的权重,预期输入 [1、1、224、224] 有 3 个通道,但有 1 个通道

【问题讨论】:

  • 你是在用灰度输入推断吗?
  • 是的,我正在尝试分析黑白的胸部 X 射线图像。

标签: python numpy pytorch


【解决方案1】:

您的模型需要 3 通道输入,这就是您收到错误的原因。一种简单直接的方法是通过重复三次通道维度将灰度图像转换为 rgb:

>>> x = img_tensor.repeat(1,3,1,1) # assuming img_tensor shaped BCHW
>>> y = model(x)

【讨论】:

    猜你喜欢
    • 2022-07-05
    • 1970-01-01
    • 2020-08-18
    • 2019-09-11
    • 2019-05-04
    • 2021-10-29
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    相关资源
    最近更新 更多