gpt4 book ai didi

pytorch - 如何在张量中复制输入 channel ?

转载 作者:行者123 更新时间:2023-12-03 21:16:42 25 4
gpt4 key购买 nike

我有一个形状为 torch.Size([39, 1, 20, 256, 256]) 的张量如何复制 channel 以制作形状 torch.Size([39, 3, 20, 256, 256]) .

最佳答案

我相当确定这已经是一个重复的问题,但我自己找不到合适的答案,这就是为什么我继续引用 PyTorch documentation 来回答这个问题。和 PyTorch forum

本质上,torch.Tensor.expand()是您正在寻找的功能,可以按如下方式使用:

x = torch.rand([39, 1, 20, 256, 256])
y = x.expand(39, 3, 20, 256, 256)

请注意,这仅适用于单例维度,在您的示例中就是这种情况,但在扩展之前可能不适用于任意维度。此外,这基本上只是提供了不同的内存 View ,这意味着,根据文档,您必须记住以下几点:

More than one element of an expanded tensor may refer to a single memory location. As a result, in-place operations (especially ones that are vectorized) may result in incorrect behavior. If you need to write to the tensors, please clone them first.



对于新分配的内存版本,请参见 torch.Tensor.repeat , 概述于 this (slightly related) answer .语法在其他方面与 expand() 完全相同.

关于pytorch - 如何在张量中复制输入 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60058698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com