ResNet34学习笔记+用pytorch手写实现

看懂ResNet,需要理解两个点:shortcut的处理,以及网络结构

理解1——Identity Mapping by Shortcuts(快捷恒等映射)

我们每隔几个堆叠层采用残差学习。构建块如图2所示。在本文中我们考虑构建块正式定义为

x和y是考虑的层的输入和输出向量。函数F(x,Wi)表示要学习的残差映射。图2中的例子有两层,F=W2σ(W1x)中σ表示ReLU[29],为了简化忽略偏置项。F+x操作通过快捷连接和各个元素相加来执行。在相加之后我们采纳了第二种非线性(即σ(y),看图2)。

公式(1)中的快捷连接既没有引入外部参数又没有增加计算复杂度。这不仅在实践中有吸引力,而且在简单网络和残差网络的比较中也很重要。我们可以公平地比较同时具有相同数量的参数,相同深度,宽度和计算成本的简单/残差网络(除了不可忽略的元素加法之外)。

方程(1)中x和F的维度必须是相等的。如果不是这种情况(例如,当更改输入/输出通道时),我们可以对快捷连接执行线性投影Ws(进行卷积操作)来匹配维度:

我们也可以在方程(1)中使用方阵Ws。但是我们将通过实验表明,恒等映射足以解决退化问题,并且是合算的,因此Ws仅在匹配维度时使用。

 

理解2——网络架构:

  • 13
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
Zero DCE是一种用于图像去模糊和增强的方法,该方法可以通过训练一个深度学习模型来实现。而PyTorch是一种常用的深度学习框架,可以在其中实现Zero DCE。 要实现Zero DCE,首先需要准备一个用于训练的图像数据集。可以收集模糊的图像作为输入,同时还需要准备它们清晰的参考图像作为标签。接下来,可以使用PyTorch创建一个深度神经网络模型,用于训练和测试。 在PyTorch中,可以使用torchvision库加载和预处理图像数据。可以使用torch.utils.data.Dataset和torch.utils.data.DataLoader来构建自定义数据集,并在训练过程中对图像进行批处理和数据增强操作。 然后,可以定义网络模型。可以选择使用现有的神经网络结构(如ResNet、U-Net等),并根据具体的需求进行适当的修改。可以使用torch.nn包中的各种层和函数来构建网络结构。 接下来,可以定义损失函数和优化器。可以使用PyTorch提供的各种损失函数(如均方误差损失、感知损失等),以及优化器(如随机梯度下降、Adam等)。 然后,可以进行模型的训练和测试。可以使用torch.nn.Module中的forward函数来定义前向传播过程,通过计算输入图像的模糊与清晰度之间的差异来更新网络参数。同时,可以使用torch.utils.tensorboard等调试工具进行模型的监控和可视化。 最后,在训练完成后,可以使用训练得到的模型对新的图像进行去模糊和增强操作。可以将模糊的图像输入模型,通过前向传播得到增强后的图像。 通过以上步骤,可以使用PyTorch实现Zero DCE方法,实现图像去模糊和增强的效果。但需要注意的是,具体实现过程中还需根据实际情况进行调试和优化,并通过适当的数据集和参数选择来提高模型的性能和效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值