现在我有一个张量,它的内存格式和形状都是NHWC。如果我想最后将它更改为NCHW形状和通道,如下所示:
x = x.to(memory_format=torch.channels_last)它具有NCHW形状,但通道步长为1,因此不会引起记忆运动。有没有办法在没有内存开销的情况下实现它?
发布于 2022-02-16 13:38:41
使用x = torch.permute(0, 3, 1, 2)不应造成任何重大开销。由于C= 1,数据的连续性被保持,因此数据缓冲区不受影响。
import torch
t = torch.rand(5, 224, 224, 1)
print(f"is t contiguous? {t.is_contiguous()}") # returns True
t = t.permute(0, 3, 1, 2)
print(f"is t contiguous? {t.is_contiguous()}") # returns True, againhttps://stackoverflow.com/questions/71136010
复制相似问题