ASGNet论文和代码解读( 四 )


输出:
>>out:children module: layer1children module: layer2modules: modules: layer1modules: layer1.0modules: layer1.1modules: layer2modules: layer2.0
可以看到只输出了和两个子,而输出了包括和下面所有的 。
.0和.1分别是下面的一些组成部分,比如我这个里面.0是,.1是relu
2.4 回归(因为卷积核尺寸和中使用的函数都是一样的,所以每一layer输出的特征图尺度都是一样的,可以直接按照1维度()来cat) 2.41 首先查询集特征图Query
查询集数据处理后的图像矩阵通道数变化: 3 ? 1024 \color{red}{3-1024} 3?1024
然后按照第一个维度拼接和: = torch.cat([, ], 1)
之后进行: = self.(),卷积和 。
PS:torch.nn. ( class, in )
参考: 中的
的赋值对象是 中的彩色的图像数据(batch N,通道 C,高度 H,宽 W)的一个通道里的每一个数据,即输入为 Input: (N, C, H, W) 时,对每一个通道维度 C 按概率赋值为 0 。
定义:
def run_2d():input_ = torch.randn(2, 3, 2, 4)m = nn.Dropout2d(p=0.5, inplace=False)output = m(input_)print("input_ = \n", input_)print("output = \n", output)
输出结果如下(对每一个通道维度 C 按概率赋值为 0 。):
input_ = tensor([[[[ 0.4218, -0.6617,1.0745,1.2412],[ 0.2484,0.6037,0.3462, -0.4551]],[[-0.9153,0.8769, -0.7610, -0.7405],[ 0.1170, -0.8503, -1.0089, -0.5192]],[[-0.6971, -0.9892,0.1342,0.1211],[-0.3756,1.9225, -1.0594,0.1419]]],[[[-1.2856, -0.3241,0.2331, -1.5565],[ 0.6961,1.0746, -0.9719,0.5585]],[[-0.1059, -0.7259, -0.4028,0.1968],[ 0.8201, -0.0833, -1.2811,0.1915]],[[-0.2207,0.3850,1.4132,0.8216],[-0.1313,0.2915,0.1996,0.0021]]]])output = tensor([[[[ 0.8436, -1.3234,2.1489,2.4825],[ 0.4968,1.2073,0.6924, -0.9101]],[[-1.8305,1.7537, -1.5219, -1.4810],[ 0.2340, -1.7006, -2.0178, -1.0385]],[[-0.0000, -0.0000,0.0000,0.0000],[-0.0000,0.0000, -0.0000,0.0000]]],[[[-0.0000, -0.0000,0.0000, -0.0000],[ 0.0000,0.0000, -0.0000,0.0000]],[[-0.2118, -1.4518, -0.8056,0.3935],[ 1.6401, -0.1667, -2.5622,0.3830]],[[-0.0000,0.0000,0.0000,0.0000],[-0.0000,0.0000,0.0000,0.0000]]]])
2.42 接着提取支撑集特征
P F E N e t 中 : \color{red}{中:} 中:
对于每一个shot:for i in range(self.shot)
接着对于s_y中下标为 i shot的mask进行插值和采样:mask = F.(mask, size=(.size(2), .size(3)), mode='', =True)
PS: torch.nn..实现插值和上采样(代码中输出[size(2),size(3)])
参考:上下采样函数–()
什么是上采样:
上采样,在深度学习框架中,可以简单的理解为任何可以让你的图像变成更高分辨率的技术 。最简单的方式是重采样和插值:将输入图片input image进行到一个想要的尺寸,而且计算每个点的像素点,使用如双线性插值等插值方法对其余点进行插值 。
是在CNN中常用的来表示max 的逆操作 。这是从2013年纽约大学 D. 和Rob 发表的《 and》中引用的:因为max 不可逆,因此使用近似的方式来反转得到max 操作之前的原始情况;
()
torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None)
参数:
注:使用mode='’时,可能会导致问题,即它可以为图像生成负值或大于255的值 。如果你想在显示图像时减少问题,可以显式地调用.clamp(min=0,max=255) 。
如果 =True,则对齐 input 和的角点像素( ),保持在角点像素的值. 只会对 mode=,和有作用. 默认是 False.
A S G N e t 中 : \color{red}{中:} 中:
三、.py
参考: 代码理解