Pytorch-view的用法 torch.view(参数a,参数b,...) 有的时候会出现torch.view(-1)或者torch.view(参数a,-1)这种情况。

Posted CV-杨帆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytorch-view的用法 torch.view(参数a,参数b,...) 有的时候会出现torch.view(-1)或者torch.view(参数a,-1)这种情况。相关的知识,希望对你有一定的参考价值。

Pytorch-view的用法


在pytorch中view函数的作用为重构张量的维度,相当于numpy中resize()的功能,但是用法可能不太一样。如下例所示
比如

import torch

a=torch.Tensor([[[1,2,3],[4,5,6]]])
b=torch.Tensor([1,2,3,4,5,6])

print(a.view(1,6))
print(b.view(1,6))
tensor([[1., 2., 3., 4., 5., 6.]])
tensor([[1., 2., 3., 4., 5., 6.]])

得到的结果一样

再看一个例子:

a=torch.Tensor([[[1,2,3],[4,5,6]]])
print(a.view(3,2))
tensor([[1., 2.],
        [3., 4.],
        [5., 6.]])

1.torch.view(参数a,参数b,…)

将1x1x3维的张量重构成1x1x6维的张量。

a=torch.Tensor([[[1,2,3],[4,5,6]]])
print(a.view(1,1,6))
tensor([[[1., 2., 3., 4., 5., 6.]]])

将1x1x3维的张量重构成3x1x2维的张量。

a=torch.Tensor([[[1,2,3],[4,5,6]]])
print(a.view(3,1,2))
tensor([[[1., 2.]],

        [[3., 4.]],

        [[5., 6.]]])

2. 有的时候会出现torch.view(-1)或者torch.view(参数a,-1)这种情况。

a=torch.Tensor([[[1,2,3],[4,5,6]]])
print(a.view(-1))
tensor([1., 2., 3., 4., 5., 6.])

由上面的案例可以看到,如果是torch.view(-1),则原张量会变成一维的结构。

a=torch.Tensor([[[1,2,3],[4,5,6]]])
a=a.view(3,2)
print(a)
a=a.view(2,-1)
print(a)
tensor([[1., 2.],
        [3., 4.],
        [5., 6.]])
tensor([[1., 2., 3.],
        [4., 5., 6.]])

由上面的案例可以看到,如果是torch.view(参数a,-1),则表示在参数b未知,参数a已知的情况下自动补齐列向量长度,在这个例子中a=2,tt3总共由6个元素,则b=6/2=3。

以上是关于Pytorch-view的用法 torch.view(参数a,参数b,...) 有的时候会出现torch.view(-1)或者torch.view(参数a,-1)这种情况。的主要内容,如果未能解决你的问题,请参考以下文章

各种STL的基本用法

which的用法总结

mark的用法和短语例句

shoe的用法和短语例句

spring的用法和短语例句

ftp的详细用法