首页 > 编程知识 正文

最大池化层的作用,池化层应该怎么设计

时间:2023-05-04 10:35:32 阅读:27840 作者:978

池层线性层1 .池层- pooling layer 1.1 nn.max pool 2d 1.2 nn.avg pool 2d 1.3 nn.maxu npool 2d2.线性层-Linear Layer

1 .池化层-轮询层池化可以消除冗馀信息和减少后续计算量。

缩减像素采样:将大图像转换为小图像

上采样:将小尺寸图像转换为大尺寸图像

最大池2d和avg池2d属于下采样

准备:将图像转换为Tensor :

img _ transform=transforms.com pose ([ transforms.to tensor () img _ tensor=img _ transform (img ) img ) tensorm stride=None,padding=0,dilation=1,return_indices=False,center

主要参数:

• kernel_size :池化核心大小

步骤:步长

填充:填充个数

• dilation :池化核间隔的大小

• ceil_mode :设定尺寸的向上或向下。 默认停机。

• return_indices :记录池化最大值像素索引(在最大值反向池化时使用)。

max pool _ layer=nn.max pool 2d ((2,2 ),stride=) 2,2 ) ) img_pool=maxpool_layer ) img _ tensor (1.2 nn.)

主要参数:

• kernel_size :池化核心大小

步骤:步长

填充:填充个数

• ceil_mode :增大大小

• count_include_pad :用于计算的填充值

• divisor_override :除法因子。 在计算像素平均值时分母成为设定参数

avgpoollayer=nn.avg pool 2d ((2,2 ),stride=) 2,2 ) ) img_pool=avgpoollayer ) img_tensor ) divisor _ overrrer

不使用divisor_override参数: img _ tensor=torch.ones ((1,1,4,4 ) )初始化4*4的图像AVGpool_layer=nn.avgpool2d img_pool ()执行结果: raw_img:tensor([[1.1 .1 .1.],[1.1 .1.],[1.1 .1 ] 4 ) )的设置)初始化4*4的图像avg pool _ layer divisor _ override=3(img _ pool=avg pool _ layer (img _ tensor ) print (' raw img_pool ) (#执行结果: raw_img:tensor([[1.1 .1 .1.],[1.1 .1.],[1.1 .1 ]

主要参数:

• kernel_size :池化核心大小

步骤:步长

填充:填充个数

#进行最大池化,然后进行反向池化# pooling img _ tensor=torch.randint (high=5,size=(1,1,4,4 ),dtype=torch.flordint return_indices=true(img_pool, indices=maxpool_layer ) img_tensor ) #记录索引# unpoolingimg _ reconstruct=torruct type=torch.float (# indices(#索引print )构建与img_pool大小相同的tensormaxunpool _ layer=nn.maxu npool 2d ((2,stride=)2) ) img n{}.format(img_tensor,img_pool ) ) ) )传递到的n{}.format(img_reconstruct,img _ u u u un pool ) [3]0. () ) img_pool:tensor([[4.4.],[4.4.] ) img_reconstruct:tensor ) [ [-1 ]-0 [ 0.0000,0.0000,0.00000,0 ] [ 0.0000,0.0000,0.0000,0.0000 ]2.线性层- linearlayernn.linear (in _ _ )

• in_features :输入节点数

• out_features :输出节点数

• bias :是否需要偏移

计算公式:

y=x W T b i a s y=xW^T bias y=xWT bias

inputs=torch.tensor([1.2,3 ] ) linear_layer=nn.linear ) #输入节点为3,输出节点为4linear_layer.weight,因此3.],[4.4 .4 .4.] ) linear_layer.bias.data.fill_(1) # bias output=linear _ layer (inputs ) prayer inputs.) )偏移的linear _ layer.weight.data.shape (print (output,output.shape ) #执行结果: tensor([1.2.)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。