如果我使用tf.transpose,它是否也会更改内存布局?
在numpy中,它使用函数np.ascontiguousarray。
我是说如果我用库达的话这很重要。因为如果内存布局是N,C,H,W,N,H,W。样品的Nr,H.阵列高度W ..。阵列宽度C ..。数组深度,例如RGB)
怎么检查这个?
发布于 2018-04-21 07:44:47
如果你仔细阅读文献资料,你就能找到答案:
Numpy兼容性 在numpy中,转置是内存高效的恒定时间操作,因为它们只是以调整的步调返回相同数据的新视图。 TensorFlow不支持跨越式,因此transpose返回一个新的张量,其中项被置换。
因此,tf.transpose返回一个新的张量,该张量具有所需的形状(因此效率很低),所以是的,它改变了内存布局。
但是,与使用tf.trasnpose不同,您可以使用tf.reshape来更改张量形状,而无需创建新的张量形状。
https://stackoverflow.com/questions/49949463
复制相似问题