Pytorch TypeError:重塑():参数';输入';(位置1)必须是张量,而不是numpy.ndarray
我是一名高中生,在使用火把和石灰方面没有太多经验。我的图像形状有很多问题。最初我的图像形状是(3224224),但是石灰算法仅适用于此形状的图像(…,…,3)。因此,我早些时候尝试了转置图像。看起来我通过这样做取得了一些进步,但是,现在我得到了一个不同的错误。下面是我的一些代码,以了解在出现错误之前我一直在做什么Pytorch TypeError:重塑():参数';输入';(位置1)必须是张量,而不是numpy.ndarray,pytorch,lime,Pytorch,Lime,我是一名高中生,在使用火把和石灰方面没有太多经验。我的图像形状有很多问题。最初我的图像形状是(3224224),但是石灰算法仅适用于此形状的图像(…,…,3)。因此,我早些时候尝试了转置图像。看起来我通过这样做取得了一些进步,但是,现在我得到了一个不同的错误。下面是我的一些代码,以了解在出现错误之前我一直在做什么 def get_preprocess_transform(): transf = transforms.Compose([ # transforms.ToPILImage
def get_preprocess_transform():
transf = transforms.Compose([
# transforms.ToPILImage(), #had to convert image to PIL as error was showing up two cells below about needing it in pil
transforms.Resize(input_size),
transforms.CenterCrop(input_size),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
])
return transf
preprocess_transform = get_preprocess_transform() ## use your data_transform but in a method version
使用此命令将numpy.ndarray转换为张量
img=torch.from_numpy(img).float()#使用适当的变量名称
使用此命令将numpy.ndarray转换为张量
img=torch.from_numpy(img).float()#使用适当的变量名称
您传递的是numpy数组,而不是方法中的torch.tensor
。因此最好在开始时将输入转换为torch.tensor
因此,img\u t
应该是torch.tensor
这里有一些方法
首先,改用numpynp.ones
img_t = torch.ones((3,224,224))
或者稍后使用从numpy.ndarray
img_t = np.ones((3, 224, 224))
img_t = torch.from_numpy(img_t)
您传递的是NumPy数组,而不是方法中的
torch.tensor
。因此最好在开始时将输入转换为torch.tensor
因此,img\u t
应该是torch.tensor
这里有一些方法
首先,改用numpynp.ones
img_t = torch.ones((3,224,224))
或者稍后使用从numpy.ndarray
img_t = np.ones((3, 224, 224))
img_t = torch.from_numpy(img_t)
发生了什么?我怎样才能修好它?谢谢你的帮助怎么了?我怎样才能修好它?谢谢你的帮助
from lime import lime_image
explainer = lime_image.LimeImageExplainer()
explanation = explainer.explain_instance(img_x, ## pass your image, do not transform
batch_predict, # classification function
top_labels=5,
hide_color=0,
num_samples=1000)
img_t = torch.ones((3,224,224))
img_t = np.ones((3, 224, 224))
img_t = torch.from_numpy(img_t)