Open3D中的open3d.core.Tensor
类中的reshape
函数可以将张量变形为指定形状的张量。
def reshape(self, shape: List[int]) -> 'Tensor':
shape
参数是一个List[int]
类型的数组,用于指定要变形的张量的形状。
返回一个新的Tensor
类型的张量,其形状由shape
参数指定。
import open3d.core as o3c
import numpy as np
# 创建一个2x3的张量
x = o3c.Tensor(np.arange(6).reshape((2, 3)))
# 将其变形为3x2的张量
y = x.reshape([3, 2])
print(x)
print(y)
[[0, 1, 2],
[3, 4, 5]]
[[0, 1],
[2, 3],
[4, 5]]
如果变形后的新张量的元素数量不等于原张量的元素数量,将抛出异常:
x = o3c.Tensor(np.arange(6).reshape((2, 3)))
# 下面这行代码将抛出异常,因为2x2的张量共有4个元素,而原张量有6个元素
y = x.reshape([2, 2])
如果某个维度的大小无法被新形状整除,将抛出异常:
x = o3c.Tensor(np.arange(6).reshape((2, 3)))
# 下面这行代码将抛出异常,因为无法将2x3的张量变形为2x2的张量
y = x.reshape([2, 2])