gpt4 book ai didi

python - Torch 中的 view() 和 unsqueeze() 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 13:32:19 24 4
gpt4 key购买 nike

使用 unsqueeze() :

input = torch.Tensor(2, 4, 3) # input: 2 x 4 x 3
print(input.unsqueeze(0).size()) # prints - torch.size([1, 2, 4, 3])
使用 view() :
input = torch.Tensor(2, 4, 3) # input: 2 x 4 x 3
print(input.view(1, -1, -1, -1).size()) # prints - torch.size([1, 2, 4, 3])
根据文档, unsqueeze()在作为参数和 view() 给出的位置插入单例暗淡创建与 tensor 关联的存储的不同维度的 View .
什么 view()我很清楚,但我无法将它与 unsqueeze() 区分开来.此外,我不明白何时使用 view()以及何时使用 unsqueeze() ?
任何有良好解释的帮助将不胜感激!

最佳答案

view()只能接单-1争论。
因此,如果要添加单例维度,则需要提供所有维度作为参数。例如,如果 A是一个 2x3x4 的张量,要添加一个单独的维度,你需要做 A:view(2, 1, 3, 4) .
但是,有时,在使用操作时,输入的维度是未知的。因此,我们不知道 A是 2x3x4,但我们仍然想插入一个单一维度。这在使用小批量张量时经常发生,其中最后一个维度通常是未知的。在这些情况下,nn.Unsqueeze 很有用,它允许我们在编写代码时插入维度而无需明确知道其他维度。

关于python - Torch 中的 view() 和 unsqueeze() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42866654/

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