问题标签 [deep-residual-networks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6691 浏览

neural-network - 如何计算 CNN 中的层数?

ResNet-18的 Pytorch 实现。具有以下结构,看起来是 54 层,而不是 18 层。

那么为什么叫“18”呢?它实际上有多少层?

0 投票
1 回答
1052 浏览

deep-learning - 对深度残差网络的直觉

我正在阅读深度残差网络论文,论文中有一个我无法完全理解的概念:

在此处输入图像描述

问题:

  1. “希望 2 个权重层适合 F(x)”是什么意思?

  2. 这里 F(x) 用两个权重层(+ ReLu 非线性函数)处理 x,所以所需的映射是 H(x)=F(x)?残差在哪里?

0 投票
0 回答
926 浏览

python - 我训练 A Keras 模型的时间越长,精度越差

我目前正在使用 keras 内置的 resnet 进行两类分类。我正在使用模型检查点来保存基于验证准确性的最佳模型。保存更好和更好的模型,直到我遍历所有数据点几次。Keras 不断保存新模型,表明它们具有更高的准确性,但是当我测试模型时,它们的性能比以前的模型差。

这是使用验证数据测试每个模型的输出。模型名称中的第一个数字是时代,最后一个数字是根据 keras 的准确度。

  • 03-0.90.hdf5,对 A 的错误预测:176,对 B 的错误预测:1652,总错误数 1828
  • 04-0.91.hdf5,对 A 的错误预测:246,对 B 的错误预测:1448,总错误数 1694
  • 06-0.92.hdf5,对 A 的错误预测:135,对 B 的错误预测:1738,总错误数 1873
  • 09-0.92.hdf5,对 A 的错误预测:117,对 B 的错误预测:1738,总错误数 1855
  • 10-0.92.hdf5,对 A 的错误预测:183,对 B 的错误预测:1208,总错误数 1391
  • 15-0.92.hdf5,对 A 的错误预测:64,对 B 的错误预测:2973,总错误数 3037
  • 23-0.93.hdf5,对 A 的错误预测:119,对 B 的错误预测:2511,总错误数 2630
  • 26-0.93.hdf5,对 A 的错误预测:113,对 B 的错误预测:1794,总错误数 1907
  • 27-0.93.hdf5,A 的错误预测:85,B 的错误预测:2821,总错误 2906

...

  • 1049-0.97.hdf5,对 A 的错误预测:31,对 B 的错误预测:5949,总错误数 5980
  • 1089-0.97.hdf5,对 A 的错误预测:3,对 B 的错误预测:6137,总错误数 6140
  • 1092-0.97.hdf5,对 A 的错误预测:6,对 B 的错误预测:6325,总错误数 6331
  • 1095-0.97.hdf5,对 A 的错误预测:0,对 B 的错误预测:6408,总错误数 6408
  • 1126-0.97.hdf5,对 A 的错误预测:0,对 B 的错误预测:6413,总错误数 6413

如您所见,该模型似乎在提高预测 A 的准确性,尽管 B 的准确性下降幅度大于 A 的提高幅度。

编辑:这是我的代码https://github.com/tan2684/Modified-Keras-Resnet

0 投票
1 回答
370 浏览

matlab - matconvnet 上的残差网络单元内容参考误差

我正在使用 mathconvnet 1.0 beta24。我可以正确安装和编译工具箱。当我按照网站上的快速入门(http://www.vlfeat.org/matconvnet/quick/);我开始;

之后,我想使用其中一个 resnet 模型而不是 imagenet-vgg-f 模型,所以我继续;

它在这部分工作正常,但是当我运行以下命令时;

我收到以下错误;

来自非元胞数组对象的元胞内容引用。

imagenet-vgg-f 模型工作正常,但是当我尝试使用 resnet 模型时出现错误。我不知道如何解决这个问题。这对我来说非常重要,因为我是一个新手。

任何想法表示赞赏

提前致谢

0 投票
1 回答
7163 浏览

python - Keras 中是否可以有不可训练的层?

我想计算像模糊或重采样这样的恒定卷积,并希望它在训练期间永远不会改变。

我可以将卷积核初始化为常量并将其排除在 Keras 的训练之外吗?

更具体地说,我不想将其用于文档中声明的目的。我想以这种方式实现残差网络:一个分支执行正常的可训练卷积,而并行分支执行一些恒定的操作,例如平均。

0 投票
1 回答
444 浏览

python-2.7 - 使用跳跃连​​接时损失没有变化

我正在尝试在 Keras 中实现这篇论文:https : //arxiv.org/pdf/1603.09056.pdf,它使用带有跳过连接的 Conv-Deconv 来创建图像去噪网络。如果我在相应的 Conv-Deconv 层之间建立对称跳过连接,我的网络运行良好,但如果我在输入和输出之间添加连接(如论文中所示),我的网络就无法训练。是我看不懂论文吗?

“但是,我们的网络从输入中学习附加损坏,因为网络的输入和输出之间存在跳跃连接”

这是论文中描述的网络:

在此处输入图像描述

这是我的网络:

如果我训练它,这就是我得到的:

我的网络有什么问题?

0 投票
3 回答
4384 浏览

machine-learning - 什么是卷积神经网络中的“线性投影”

我正在阅读Residual learning,我有一个问题。什么是3.2中提到的“线性投影”?一旦得到这个看起来很简单,但无法理解......

我基本上不是计算机科学人,所以如果有人提供一个简单的例子,我将不胜感激。

0 投票
1 回答
531 浏览

neural-network - 关于NN残差层反向传播推导的说明

我到处寻找,找不到任何解释残余层反向传播的实际推导的东西。这是我最好的尝试,也是我陷入困境的地方。值得一提的是,我希望的推导是从一个通用的角度来看的,而不必局限于卷积神经网络。

如果计算普通隐藏层输出的公式是 F(x),那么带有残差连接的隐藏层的计算公式是 F(x) + o,其中 x 是前一层的权重调整输出,o 是前一层的输出,F 是激活函数。要在反向传播期间获得正常层的增量,需要计算输出的梯度∂F(x)/∂x。对于残差层,这是∂(F(x) + o)/∂x,可分离为∂F(x)/∂x + ∂o/∂x (1)。

如果所有这些都是正确的,那么如何处理∂o/∂x?在我看来,这取决于网络 o 来自多远。

  • 如果 o 仅来自前一层,则 o*w=x 其中 w 是将前一层连接到 F(x) 层的权重。对每一边求导得到 ∂(o*w)/∂o = ∂x/∂o,结果是 w = ∂x/do,这正好是 (1) ) 多于。在这种情况下,残差层的梯度只是 ∂F(x)/∂x + 1/w 是否有意义?将 1/w 解释为矩阵逆是否准确?如果是这样,那么实际上是由使用残差连接的 NN 框架计算的,还是有一些捷径可以从残差中添加误差?

  • 如果 o 来自网络中更远的地方,那么我认为推导会变得稍微复杂一些。这是一个示例,其中残差来自网络中更靠后的一层。网络架构为 Input--w1--L1--w2--L2--w3--L3--Out,从 L1 到 L3 层有残差连接。为了明确起见,第一个示例中的符号 o 被层输出 L1 替换。我们试图在反向传播期间计算 L3 的梯度,它具有 F(x)+L1 的前向函数,其中 x=F(F(L1*w2)*w3)。这个关系的导数是∂x/∂L1=∂F(F(L1*w2)*w3/∂L1,比较复杂,但是用数值求解似乎也不是太难。

如果上述推导是合理的,那么值得注意的是,存在推导失败的情况,即残差连接源自输入层。这是因为输入不能分解为 ao*w=x 表达式(其中 x 是输入值)。我认为这一定表明残差层不能源自输入层,但是由于我已经看到具有源自输入的残差连接的网络架构图,这使我的上述推导受到质疑。我看不出我哪里出错了。如果有人可以提供他们如何正确计算残差合并点的梯度的推导或代码示例,我将不胜感激。

编辑:

我的问题的核心是,在使用残差层并进行香草反向传播时,是否对添加残差的层的误差进行了特殊处理?由于残差来自的层和添加残差的层之间存在“连接”,因此错误是否需要通过该“连接”向后分布?我的想法是,由于残差层提供了从网络开始到更深层的原始信息,因此更深的层应该为更早的层提供原始错误。

根据我所看到的(阅读 googleable 论坛的前几页、阅读基本论文和观看视频讲座)和下面 Maxim 的帖子,我开始认为答案是∂o/∂x = 0 并且我们将 o 视为常数。

有没有人在通过带有剩余层的 NN 进行反向传播期间做任何特别的事情?如果不是,那么这是否意味着残差层仅在前向传递中是网络的“活跃”部分?

0 投票
2 回答
2711 浏览

neural-network - 残差神经网络:连接还是元素加法?

对于残差神经网络中的残差块,块末尾的加法是真正的元素加法还是串联?

例如,会addition([1, 2], [3, 4])产生[1, 2, 3, 4][4, 6]

0 投票
1 回答
3764 浏览

python - 张量流中的残差学习

初始层

我正在尝试从研究论文中复制此图像。在图像中,橙色箭头表示使用残差学习的捷径,红色轮廓的层表示扩张卷积。

在下面的代码中,r5 是图像中看到的 relu 的结果。为简单起见,我排除了 relu 和膨胀层之间的代码。 在 tensorflow 中,如何正确结合 relu 和扩张卷积的结果来执行残差捷径?