numpy as_strided 的反函数

2023-12-22

我有一个 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 and x.strides元组),是否可以恢复原始张量x, using as_strided again, reshape, sum, ETC。?注意:我实际上并不打算将上述过程应用于y本身;相反,我想在形状相同的张量上执行该过程y.


Well y只是一个视图x,具有不同的形状和步幅。如此一来,恢复x from y只是简单地改变形状和步幅。因此,考虑到这些(假设这些在x to y转换),这将是简单的 -

x = np.lib.stride_tricks.as_strided(y, x.shape, x.strides)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

numpy as_strided 的反函数 的相关文章

随机推荐