当前位置:首页 > 神经网络 > 正文

cnn卷积神经网络pytorch

⒈PyTorch神经网络层拆解

本文对PyTorch的常见神经网络层进行了分解。 从开发者的角度来看,这些神经网络层是一层一层地完成数据处理的。

第一个:CLASStorch.nn.Flatten(start_dim=1,end_dim=-1),它将多维输入转换为一维,通常在从卷积层过渡到全连接层时使用。 需要注意的是,Flatten()默认值为start_dim=1,即默认数据格式为[N,C,H,W],第0维为BatchSize,不参与Flatten。 随后的CHW都被展平为一维。

其次,CLASStorch.nn.Linear(in_features,out_features,bias=True,device=None,dtype=None)也被称为全连接层,在TensorFlow中称为Dense,主要用于分类。
Linear类有两个属性:

第三、CLASStorch.nn.Conv2d(in_channels,out_channels,kernel_size,stride=1,padding=0,dilation=1,groups=1,bias=true,padding_mode='zeros',device=None,dtype=None),卷积层常用来提取图像特征,CNN+RELU+MaxPooling已经成为常用的特征提取操作。
需要注意的是,CNN要求数据输入格式为:[N,Cin,Hin,Wout],Cin为输入数据张量的通道数,输出为[N,Cout,Hout,Wout]和Cout是CNN层中的卷积数量。 Hout和Wout的计算公式如下:

示例程序:

总结: