您的位置:

unsqueeze函数的详细阐述

一、unset函数

1、unset函数是对一个Tensor进行操作,操作的结果是将该Tensor指定位置的元素的值设置为默认值0。

import torch

x = torch.tensor([[1, 2], [3, 4]])
x[0, 1] = torch.tensor(0)
print(x)

结果为:

tensor([[1, 0],
        [3, 4]])

2、在unsqueeze函数中,如果在指定维度上执行unset操作,那么该位置为0,该位置前面的维度值不变,后面的维度需要加1。

import torch

x = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

x = torch.unset(x, 1)

print(x)

结果为:

tensor([[[0, 0],
         [0, 0]],

        [[0, 0],
         [0, 0]]])

二、squeeze函数是什么意思

1、squeeze函数是对Tensor进行操作,操作的结果是删除维数为1的维度。

import torch

x = torch.tensor([[[1, 2], [3, 4]]])
x = torch.squeeze(x)

print(x.size())

结果为:

torch.Size([2, 2])

2、在unsqueeze函数中,如果在指定维度上执行squeeze操作,那么该位置的维度被删除,该位置前面和后面的维度不变。

import torch

x = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

x = torch.squeeze(x, 1)

print(x.size())

结果为:

torch.Size([2, 2, 2])

三、uniform函数是什么函数

1、uniform函数是用来生成指定大小的随机数Tensor,随机数取值在[0, 1)之间。

import torch

x = torch.empty(3, 3)
x = torch.nn.init.uniform_(x)

print(x)

结果为:

tensor([[0.3481, 0.9646, 0.2879],
        [0.4404, 0.3296, 0.6972],
        [0.9313, 0.3676, 0.4409]])

2、在unsqueeze函数中,如果在指定维度上执行uniform操作,那么该位置的维度上的元素值取随机数[0, 1),该位置前面和后面的维度不变。

import torch

x = torch.ones(2, 3, 4)

x = torch.nn.init.uniform_(x[:, 0, :], 0, 1)

print(x)

结果为:

tensor([[0.5948, 0.4088, 0.1028, 0.9948],
        [0.5948, 0.4088, 0.1028, 0.9948]])

四、unsignedchar函数是什么函数

1、unsignedchar函数是将Tensor的数据类型设置为uint8。

import torch

x = torch.tensor([[-1, 2], [3, 4]])
x = x.type(torch.uint8)

print(x)

结果为:

tensor([[255,   2],
        [  3,   4]], dtype=torch.uint8)

2、在unsqueeze函数中,如果在指定位置上执行unsignedchar操作,那么该位置的数据类型变为uint8,该位置前面和后面的维度不变。

import torch

x = torch.tensor([[1.0, 2.0], [3.0, 4.0]])

x = x.unsqueeze(1)
x = x.type(torch.uint8)

print(x)

结果为:

tensor([[[1, 2]],

        [[3, 4]]], dtype=torch.uint8)