python forward函数_PyTorch之前向传播函数自动调用forward

神经网络的典型处理如下所示:

1. 定义可学习参数的网络结构(堆叠各层和层的设计);

2. 数据集输入;

3. 对输入进行处理(由定义的网络层进行处理),主要体现在网络的前向传播;

4. 计算loss ,由Loss层计算;

5. 反向传播求梯度;

6. 根据梯度改变参数值,最简单的实现方式(SGD)为:

weight = weight - learning_rate * gradient

下面是利用PyTorch定义深度网络层(Op)示例:

class FeatureL2Norm(torch.nn.Module):

def __init__(self):

super(FeatureL2Norm, self).__init__()

def forward(self, feature):

epsilon = 1e-6

# print(feature.size())

# print(torch.pow(torch.sum(torch.pow(feature,2),1)+epsilon,0.5).size())

norm = torch.pow(torch.sum(torch.pow(feature,2),1)+epsilon,0.5).unsqueeze(1).expand_as(feature)

return torch.div(feature,norm)class FeatureRegression(nn.Module):

def __init__(self, output_dim=6, use_cuda=True):

super(FeatureRegression, self).__in

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值