numpy的反函数as_strided
Inverse function of numpy as_strided
我有一个 4 张量 x
。 6张量y
计算如下:
x = np.random.randn(64, 28, 28, 1)
strided_shape = 64, 26, 26, 3, 3, 1
y = numpy.lib.stride_tricks.as_strided(x, strided_shape, strides=(x.strides[0], x.strides[1], x.strides[2], x.strides[1], x.strides[2], x.strides[3]))
strided_shape
通常可以是任何形状,只要第一个和最后一个维度与 x
匹配即可(这只是一个具体示例)。
我的问题是,使用 y
(以及 x.shape
和 x.strides
元组)是否可以使用 [=20] 恢复原始张量 x
=],reshape
,sum
,等等?注意:我实际上并不打算将上述过程应用于 y
本身;相反,我想在与 y
.
形状相同的张量上执行该过程
好吧 y
只是 x
的一个视图,具有不同的形状和步幅。因此,从 y
恢复 x
只是简单地改变形状和步幅。因此,鉴于这些(假设这些在 x
到 y
转换之前保存),它只是 -
x = np.lib.stride_tricks.as_strided(y, x.shape, x.strides)
我有一个 4 张量 x
。 6张量y
计算如下:
x = np.random.randn(64, 28, 28, 1)
strided_shape = 64, 26, 26, 3, 3, 1
y = numpy.lib.stride_tricks.as_strided(x, strided_shape, strides=(x.strides[0], x.strides[1], x.strides[2], x.strides[1], x.strides[2], x.strides[3]))
strided_shape
通常可以是任何形状,只要第一个和最后一个维度与 x
匹配即可(这只是一个具体示例)。
我的问题是,使用 y
(以及 x.shape
和 x.strides
元组)是否可以使用 [=20] 恢复原始张量 x
=],reshape
,sum
,等等?注意:我实际上并不打算将上述过程应用于 y
本身;相反,我想在与 y
.
好吧 y
只是 x
的一个视图,具有不同的形状和步幅。因此,从 y
恢复 x
只是简单地改变形状和步幅。因此,鉴于这些(假设这些在 x
到 y
转换之前保存),它只是 -
x = np.lib.stride_tricks.as_strided(y, x.shape, x.strides)