遇到数据类型为时,获取’tensor is not a torch image’错误

正如问题所示,我试图将images转换为张量。

X, y = train_sequence[idx]  images = Variable(torch.from_numpy(X)).to(device) # [batch, channel, H, W]masks = Variable(torch.from_numpy(y)).to(device) print(type(images)) ## Output: <class 'torch.Tensor'>images = transforms.Normalize((0.5, 0.5, 0.5, 0.5, 0.5), (0.5, 0.5, 0.5,0.5, 0.5))(images)masks =  transforms.Normalize((0.5), (0.5))(masks)

但我在---> 19 images = transforms.Normalize((0.5, 0.5, 0.5, 0.5, 0.5), (0.5, 0.5, 0.5,0.5, 0.5))(images)处得到了错误

TypeError: tensor is not a torch image.


回答:

这是因为目前,torchvison.transforms.Normalize仅支持具有2或3个通道的图像,且不包含批次维度,即(C, H, W)。因此,不应传入一个4D张量,像这样会起作用:

image = torch.ones(3, 64, 64)image = transforms.Noramalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))(image)

另外,由于0.5值代表图像通道的均值和标准差,通常应该只有3个通道(你不会“标准化”批次维度,只标准化空间维度),所以不要使用长度为5的tuple,而是使用(0.5, 0.5, 0.5)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注