如代码,想获取tensor的维度,但tensor括号内有两个值,不能直接.shape,这该如何获取,求指点!
im = torch.from_numpy(im).to(device)
LOGGER.info(f"im = {colorstr('yellow', im)}")
如上代码,执行后得到tensor,但想获取tensor的维度,但tensor括号内有两个值,不能直接.shape,这该如何获取,求指点!
tensor([[[[0.61176, 0.61176, 0.58431, ..., 0.83137, 0.83137, 0.83137],
[0.61176, 0.58431, 0.58824, ..., 0.83137, 0.83137, 0.83137],
[0.60000, 0.58824, 0.58431, ..., 0.83137, 0.83137, 0.83137],
...,
[0.63529, 0.63529, 0.63529, ..., 0.57647, 0.58039, 0.58039],
[0.63529, 0.62745, 0.63137, ..., 0.57647, 0.58039, 0.58039],
[0.63922, 0.63529, 0.63922, ..., 0.57647, 0.57647, 0.57647]],
[[0.61569, 0.61569, 0.58824, ..., 0.86667, 0.86667, 0.86667],
[0.61569, 0.58824, 0.59216, ..., 0.86667, 0.86667, 0.86667],
[0.60392, 0.59216, 0.58824, ..., 0.86667, 0.86667, 0.86667],
...,
[0.63529, 0.63137, 0.63137, ..., 0.60784, 0.61176, 0.61176],
[0.63137, 0.62353, 0.62745, ..., 0.60784, 0.61176, 0.61176],
[0.63922, 0.63137, 0.63529, ..., 0.60784, 0.60784, 0.60784]],
[[0.59608, 0.59608, 0.56863, ..., 0.89020, 0.89020, 0.89020],
[0.59608, 0.56863, 0.57255, ..., 0.89412, 0.89412, 0.89412],
[0.58431, 0.57255, 0.56863, ..., 0.89412, 0.89412, 0.89412],
...,
[0.61569, 0.61569, 0.61569, ..., 0.61569, 0.61961, 0.61961],
[0.61569, 0.60784, 0.61176, ..., 0.61569, 0.61961, 0.61961],
[0.61961, 0.61569, 0.61961, ..., 0.61569, 0.61569, 0.61569]]]], device='cuda:0')
该回答引用ChatGPT
可以使用torch.Tensor.shape或torch.Tensor.size()方法获取tensor的维度,这两种方法等效。对于上述代码中的tensor,可以使用以下代码获取其维度:
im.shape # 或者 im.size()
这将返回一个元组,其中包含tensor的各个维度大小。例如,如果返回的元组为(1, 3, 224, 224),则说明该tensor是一个大小为1x3x224x224的四维tensor。
该回答引用GPTᴼᴾᴱᴺᴬᴵ
要获取 PyTorch tensor 的维度,可以使用 .shape 属性。对于括号内有两个值的 tensor,可以通过获取 .shape 的前两个元素来得到它的维度信息。例如,对于你的 tensor,可以使用以下代码获取它的维度信息:
dim1, dim2, *rest = im.shape
其中 dim1 和 dim2 就是 tensor 的前两个维度,而 rest 是剩余的维度信息(如果有的话)。你可以根据需要调整代码来获取你所需要的维度信息。
不知道你这个问题是否已经解决, 如果还没有解决的话: