- 博客(5)
- 收藏
- 关注
原创 DenseNet121 代码复现(pytorch)
代码结构清晰,易于维护和扩展;每个模块的功能单一,便于调试和修改;可以复用不同的模块,减少冗余。BN层→ReLU→Conv(1x1)→BN→ReLU→Conv(3x3)→拼接特征图。本次复现的模型是DenseNet121,网络结构参考论文。*layer放入nn.Sequrential中解码。input_channel传入下一个block。Denselayer定义增长率k。返回了input_channel。
2024-12-07 21:28:40
1180
原创 DenseNet论文阅读
翻译近期的研究表明,如果卷积网络在靠近输入和靠近输出的层之间包含较短的连接,它们可以变得更深、更准确,并且训练更加高效。在本文中,我们基于这一观察,提出了密集卷积网络(DenseNet),它以前馈的方式将每一层与其他所有层相连。而传统的卷积网络有 L 层时,只有 L个连接(每一层与其后一层之间有一个连接),而我们的网络则有个直接连接。对于每一层,所有前面层的特征图都作为输入,同时它自己的特征图也会作为输入传递给所有后续层。
2024-12-04 18:29:55
1073
1
原创 RestNet论文总结
深层卷积神经网络在一定情况下越深的效果越好,但是随着层次的加深,出现了两个问题:问题一:梯度消失和梯度爆炸是因为在传统网络中,反向传播通过链式法则计算梯度:如果每一层的激活函数(如 sigmoid、tanh)的导数较小,梯度会逐层变小,那么随着层数的加深,梯度会指数级接近零,导致早期层几乎没有梯度更新。是因为如果权重初始化较大或激活函数导数较大,梯度会在反向传播时指数级增大。最后导致梯度震荡,网络权重不稳定,训练发散。问题二:准确率先饱和后下降。
2024-12-03 22:45:39
612
原创 AlexNet复现学习笔记
从前面的网络结构我们可以知道,AlexNet的激活函数都使用的是ReLU函数,所以我们在权重初始话的时候可以采用kaiming初始化,因为我们希望输入的方差和输出的方差保持一致,当数据集服从均匀分布或者正态分布时,由于ReLU函数0为x,所以方差会被砍半,所以使用kaiming初始化就是保证输入输出的方差一致。我们后面如何调用初始化函数呢?后面定义模型时我们调用model.apply(kaiming_init_weights)#定义训练模型。
2024-11-21 12:53:46
955
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人