pytorch中unsqueeze()函数理解

unsqueeze()函数起升维的作用,参数表示在哪个地方加一个维度。
在第一个维度(中括号)的每个元素加中括号
0表示在张量最外层加一个中括号变成第一维。
直接看例子:

import torch
input=torch.arange(0,6)
print(input)
print(input.shape)
结果:
tensor([0, 1, 2, 3, 4, 5])
torch.Size([6])
print(input.unsqueeze(0))
print(input.unsqueeze(0).shape)
结果:
tensor([[0, 1, 2, 3, 4, 5]])
torch.Size([1, 6])
print(input.unsqueeze(1))
print(input.unsqueeze(1).shape)
结果:
tensor([[0],
        [1],
        [2],
        [3],
        [4],
        [5]])
torch.Size([6, 1])

  • 111
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
DRSN是一种使用了残差收缩层的ResNet变体,在PyTorch有相应的实现代码。残差收缩层的结构包括两次卷积操作后取绝对值,然后经过全局平均池化(GAP)将通道数缩减为1,再经过两次全连接层得到z,再经过Sigmoid函数得到一个值。最后,将GAP的结果取平均后与z相乘,得到软阈值化的结果,再与原输入进行阈值化。在PyTorch的代码实现如下所示: ```python class Shrinkage(nn.Module): def __init__(self, gap_size, channel): super(Shrinkage, self).__init__() self.gap = nn.AdaptiveAvgPool2d(gap_size) self.fc = nn.Sequential( nn.Linear(channel, channel), nn.BatchNorm1d(channel), nn.ReLU(inplace=True), nn.Linear(channel, 1), nn.Sigmoid(), ) def forward(self, x): x_raw = x x = torch.abs(x) x_abs = x x = self.gap(x) x = torch.flatten(x, 1) average = torch.mean(x, dim=1, keepdim=True) x = self.fc(x) x = torch.mul(average, x) x = x.unsqueeze(2).unsqueeze(2) sub = x_abs - x zeros = sub - sub n_sub = torch.max(sub, zeros) x = torch.mul(torch.sign(x_raw), n_sub) return x ``` 这段代码是对DRSN残差收缩层的PyTorch实现。其,输入x经过取绝对值操作后,通过全局平均池化(GAP)得到一个向量,再经过两次全连接层得到z,再通过Sigmoid函数得到一个值。然后,将GAP的结果取平均后与z相乘,得到软阈值化的结果,再与原输入进行阈值化。这段代码可以用于PyTorch的DRSN模型实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [深度残差收缩网络的PyTorch代码](https://blog.csdn.net/ifalivestudy/article/details/112218925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [深度残差收缩网络(DRSN)理解PyTorch代码复现(转载)](https://blog.csdn.net/zjy1015741747/article/details/123669502)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值