torch.unsqueeze()函数解析《pytorch学习》

引言:此函数常用于维度计算当中,网络搭建过程中,在下不才,将此函数理解为维度加一函数,也就是扩充在原来基础上再扩充一个一维 维度的函数。

如果在引言部分你只是懵懵懂懂,那下面就展示几个通俗易懂的例子吧!(默认情况下,图像的一般表述为(C*W*H)其中C代表通道数,C就是常说的三RGB通道,W代表的是图像的宽度,H代表图像的高度,下面以这个讲解)

数据库导入:

import torch
from PIL import Image
import matplotlib.pyplot as plt

1.首先在一维维度的空间张量,在开头加上/扩充一个维度。(Y,X)

1》在Y轴方向的扩张

代码:

data1=torch.tensor([1,2,5,9])
print(data1,data1.dim(),data1.size())
data2=torch.unsqueeze(data1,0)
print(data2,data2.dim(),data2.size())

output:

tensor([1, 2, 5, 9]) 1 torch.Size([4])
tensor([[1, 2, 5, 9]]) 2 torch.Size([1, 4])

分析:在原来的一维维度张量扩充为二维维度张量。类似于原来在X轴上的一维数据,在Y轴上扩张。

2》在X轴方向上的扩张。

代码:


data1=torch.tensor([1,2,5,9])
print(data1,data1.dim(),data1.size())
data2=torch.unsqueeze(data1,1)
print(data2,data2.dim(),data2.size())

output:

tensor([1, 2, 5, 9]) 1 torch.Size([4])
tensor([[1],
            [2],
            [5],
            [9]]) 2 torch.Size([4, 1])

分析:类似于原来在Y轴上的一维数据,在X轴上扩张。

3.在二维空间上的扩张。(Z)

1》首先在Z轴上的扩张。

代码:

data1=torch.randn((2,3))
print(data1,data1.dim(),data1.size())
data2=torch.unsqueeze(data1,0)
print(data2)
print(data2.dim(),data2.size())

output:

tensor([[ 1.1373,  0.1755, -0.3572],
        [ 0.3606, -0.4550, -1.0797]]) 
2 torch.Size([2, 3])
tensor([[[ 1.1373,  0.1755, -0.3572],
         [ 0.3606, -0.4550, -1.0797]]])
3 torch.Size([1, 2, 3])

2》在Y上的扩张。

代码:

data1=torch.randn((2,3))
print(data1,data1.dim(),data1.size())
data2=torch.unsqueeze(data1,1)
print(data2)
print(data2.dim(),data2.size())

output:

tensor([[-0.7019, -0.4293, -0.5671],
        [-1.6799, -0.0126,  0.1750]]) 
2 torch.Size([2, 3])
tensor([[[-0.7019, -0.4293, -0.5671]],

        [[-1.6799, -0.0126,  0.1750]]])
3 torch.Size([2, 1, 3])

3》在Z轴上的扩张。

代码:

data1=torch.randn((2,3))
print(data1,data1.dim(),data1.size())
data2=torch.unsqueeze(data1,-1)
print(data2)
print(data2.dim(),data2.size())

output:

tensor([[ 1.1902, -1.2110, -0.0837],
        [-0.0760,  0.5523, -1.3458]]) 
2 torch.Size([2, 3])
tensor([[[ 1.1902],
         [-1.2110],
         [-0.0837]],

        [[-0.0760],
         [ 0.5523],
         [-1.3458]]])
3 torch.Size([2, 3, 1])

4.结束:

GAME OVER

如果理解错误,欢迎大家批评,及时纠正小琼的错误哦,真心感谢你的纠正!!!

如果小伙伴梦有疑问欢迎在评论区留言哦!!!

如果感觉不错的话!点个赞呗,不用客气!(O(∩_∩)O哈哈~)

欢迎和小伙伴梦一起学习,共同努力,加油!!!

你可能感兴趣的:(pytorch冒险之旅,pytorch,深度学习,python)