我试图在CNN中调整一个5D PyTorchTensor的大小,但是我遇到了一些麻烦。我已经附上了我的代码和我得到的错误。
import torchvision.transforms.functional as TF
import numpy as np
a = torch.rand((1, 3, 20, 376, 376))
b = TF.resize(a, (200, 200))
- 值错误:输入和输出必须具有相同的空间维数,但输入的空间维数为[20,376,376],输出大小为[200,200]。请以(N,C,d1,d2,...,dK)格式提供输入Tensor,以(o 1,o2,...,oK)格式提供输出大小。*
5DTensor具有以下尺寸:
(1、3、20、376、376),对应于(批量、通道、深度、高度、宽度)。
Tensor的最后3个维度是指通过网络的3D图像的维度。我想调整最后两个维度,高度和宽度。任何指导都将不胜感激。谢谢!
不幸的是,我不能把Tensor转换成numpy数组,调整大小,然后再把它们转换成Tensor,因为我会丢失训练中梯度下降所需的梯度。
1条答案
按热度按时间qyswt5oh1#
使用
TF.resize
的一种方法是展平批维和深度维,执行调整大小,然后恢复初始深度维: