使用来自数据集的单个图像评估pytorch预训练模型

wbrvyc0a  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(112)

有人能帮我解决这个问题吗:我试着用ML模型来评估预训练图像,我在这篇文章的底部发现了错误状态。
根据我的理解,pytorch模型希望数据采用以下格式:batch_channel,channel,Height,Lenght。我修改Tensor使其成为这个形状,但仍然出现错误。
有人能给我解释一下为什么会出现这个错误吗?
我对编码和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)

错误:运行时错误:给定组=1,权重大小为[64,3,3,3],预期输入[1,1,224,224]具有3个通道,但得到1个通道

tuwxkamq

tuwxkamq1#

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

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

相关问题