pytorch中的前向传播函数forward(self, x)

本文通过代码示例详细阐述了神经网络forward函数,包括卷积、归一化、激活及池化等步骤,展示了其在深度学习中的重要角色。
摘要由CSDN通过智能技术生成

一 概述

在这里插入图片描述

二 代码示例

	# x为输入值
    def forward(self, x):
    	# 将输入x通过self.conv1进行卷积操作,得到卷积后的结果x。
        x = self.conv1(x)
        # 将卷积后的结果x通过self.bn1进行批量归一化操作,得到归一化后的结果x。
        x = self.bn1(x)
        # 将归一化后的结果x通过ReLU激活函数进行激活,得到激活后的结果x。
        x = self.relu(x)
        
		#重复上述步骤,对x进行多次卷积、归一化和激活操作。
        x = self.conv2(x)
        x = self.bn2(x)
        x = self.relu(x)
        
        # 将激活后的结果x通过self.block1进行某种块操作,得到块操作后的结果x。
        x = self.block1(x)
        x = self.block2(x)
        x = self.block3(x)
        
        x = self.conv3(x)
        x = self.bn3(x)
        x = self.relu(x)
  
		# 将激活后的结果x通过自适应平均池化操作,将特征图的大小调整为(1, 1)。
        x = F.adaptive_avg_pool2d(x, (1, 1))
       # 将池化后的结果x进行展平操作,将其转换为一维向量。
       # 因为全连接层需要接收一维向量作为输入,目的是能够对每个元素进行独立的处理,从而实现更复杂的模型和任务
       # x.size(0)表示batchsize的值,而-1表示根据原tensor数据和batchsize自动分配列数
       # 将池化后的多维张量转换为(batchsize, channels*x*y)的形状,即将(channels,x,y)拉直成一维向量
        x = x.view(x.size(0), -1)

		# 将展平后的结果x通过全连接层self.fc进行线性变换,得到最终的输出x
		x = self.fc(x)

        return x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力当总裁的郭琛予

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值