使用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])
Run Code Online (Sandbox Code Playgroud)
使用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])
Run Code Online (Sandbox Code Playgroud)
根据文档,unqueeze()在作为参数给出的位置处插入singleton dim,而view()创建一个具有与之关联的存储的不同维度的视图tensor
.
什么视图()的作用是明确的给我,但我无法从区别unsqueeze() .而且,我不知道何时使用view()以及何时使用unsqueeze()?
任何有良好解释的帮助将不胜感激!
gre*_*123 18
view()只能接受一个"-1"参数.
因此,如果要添加单个维度,则需要提供所有维度作为参数.例如,如果A是2x3x4张量,要添加单个维度,则需要执行A:view(2,1,3,4).
但是,有时,在使用操作时,输入的维度是未知的.因此,我们不知道A是2x3x4,但我们仍然希望插入单个维度.当使用张量的张量时,这种情况会发生很多,其中最后一个维度通常是未知的.在这些情况下,nn.Unsqueeze非常有用,我们可以在编写代码时插入维度而无需显式地了解其他维度.
归档时间: |
|
查看次数: |
10020 次 |
最近记录: |