问题标签 [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 投票
3 回答
2576 浏览

python - Tensorflow:如何设置对数尺度的学习率和一些 Tensorflow 问题

我是一名深度学习和 Tensorflow 初学者,我正在尝试使用 Tensorflow实现本文中的算法。本文使用 Matconvnet+Matlab 来实现,我很好奇 Tensorflow 是否有等效的功能来实现相同的东西。报纸说:

使用 Xavier 方法 [14] 初始化网络参数。我们在 l2 惩罚下使用了四个小波子带的回归损失,并通过使用随机梯度下降 (SGD) 对所提出的网络进行了训练。正则化参数 (λ) 为 0.0001,动量为 0.9。学习率设置为从 10-1 到 10-4,在每个 epoch 以对数规模减小。

本文使用小波变换(WT)和残差学习方法(其中残差图像= WT(HR) - WT(HR'),其中HR'用于训练)。Xavier 方法建议使用以下方法初始化变量正态分布

Q1。我应该如何初始化变量?下面的代码是否正确?


本文没有详细解释如何构建损失函数。我找不到等效的 Tensorflow 函数来设置对数刻度的学习率(仅限exponential_decay)。我理解MomentumOptimizer相当于带有动量的随机梯度下降。

Q2:是否可以设置对数尺度的学习率?

Q3:如何创建上述损失函数?

我跟着这个网站写了下面的代码。假设model()函数返回本文提到的网络,lamda=0.0001,

注意:由于我是深度学习/Tensorflow 初学者,我在这里和那里复制粘贴代码,所以如果可以的话,请随时纠正它;)

0 投票
1 回答
120 浏览

machine-learning - 残差网络可以跳过一个线性而不是两个吗?

ResNets 中的标准是跳过 2 个线性。只跳过一个也可以吗?

0 投票
1 回答
199 浏览

machine-learning - 实现残差块

在传统的残差块中,第 N 层对第 N+2 层(非线性之前)的输出的“加法”是逐元素加法还是串联?

文献表明是这样的:

0 投票
1 回答
486 浏览

keras - 仅部分输入的 Keras 剩余连接

我已经制作了一个没有残余连接的模型,它编译和拟合没有任何错误[使用 Keras Sequential API ]

我希望测试一个修改版本,只需添加一个残留连接,如SPEECH ENHANCEMENT BASED ON DEEP NEURAL NETWORKS WITH SKIP CONNECTIONS。所以,我需要改用功能 API。

我的问题是在输入中间提取一块。我试过了。

结果是:

  • 尝试 1 和尝试 2:
    • 错误 = add() 期间的形状不连贯
  • 尝试 3 和尝试 4:
    • add() 的好形状
    • 模型错误(...)
      • 我一步一步进入了 Model() 。我们从最后一层开始向后退
      • 输出 add() 确定
      • 上一个 K.transpose(): Error AttributeError: 'Tensor' object has no attribute '_keras_history' in "build_map_of_graph"

模型构建失败是因为我使用了后端的函数(TensorFlow,对我来说)?

任何人都可以帮忙,好吗?

也许如果我使用乘法()?

  • modelInputs 是 (m, N*OUTPUT_SIZE) 和 modelInputs_selected 是 (m,OUTPUT_SIZE)
  • 使用好的矩阵 A (N*OUTPUT_SIZE, OUTPUT_SIZE):modelInputs_selected = multiply(modelInputs, A)
0 投票
1 回答
790 浏览

machine-learning - 为什么深度残差网络中的每个块都有两个卷积层而不是一个?

在此处输入图像描述

该图显示了残差网络的基本块。它有两个卷积层吗?当它只有一个卷积层时会发生什么?

0 投票
0 回答
624 浏览

tensorflow - 将 DropoutWrapper 和 ResidualWrapper 与variational_recurrent=True 结合使用

我正在尝试创建一个用 DropoutWrapper 和 ResidualWrapper 包裹的 LSTM 单元的 MultiRNNCell。对于使用variational_recurrent=True,我们必须向DropoutWrapper 提供input_size 参数。我无法弄清楚应该将什么 input_size 传递给每个 LSTM 层,因为 ResidualWrapper 还添加了跳过连接以增加每一层的输入。

我正在使用以下实用程序函数来创建一个 LSTM 层:

以下代码用于创建完整的单元格:

对于第一层和后续 LSTM 层,应该将哪些值传递给 input_size?

0 投票
0 回答
173 浏览

python-3.x - 如何在不调用 tf.layers.batch_normalization() 的情况下在推理模式下设置批量标准化操作?

我用 tensorflow 定义了一个深度 CNN,包括一个批量标准化操作,即,我的代码可能如下所示:

假设网络已经训练好,并且检查点文件已经保存。现在我想用这个模型进行推理。通常,我可以network(input)再次调用该函数,除了将参数传递training=Falsetf.layers.batch_normalization(),然后从检查点文件中恢复权重。

但是,我更喜欢用它tf.import_meta_graph来重建我的网络,因为函数中的代码network(input)可以更改。

但是现在我如何在推理模式下设置批量标准化操作呢?由于我无法访问 function tf.layers.batch_normalization(),因此我很难解决这个问题。

0 投票
1 回答
5395 浏览

python - 如何在 Keras 中实现具有残差连接和批量归一化的一维卷积神经网络?

我正在尝试使用 keras基于论文Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks开发具有残差连接和批量归一化的一维卷积神经网络。这是到目前为止的代码:

这是我正在尝试构建的简化模型的图表。

论文中描述的模型使用递增数量的过滤器:

该网络由 16 个残差块组成,每个块有 2 个卷积层。卷积层的滤波器长度均为 16,有 64k 个滤波器,其中 k 从 1 开始,每 4 个残差块递增。每个备用残差块对其输入进行 2 倍子采样,因此原始输入最终被 2^8 倍子采样。当残差块对输入进行二次采样时,相应的快捷连接也会使用具有相同子采样因子的 Max Pooling 操作对其输入进行二次采样。

但只有在每个 Conv1D 层中使用相同数量的过滤器,k=1,strides=1 和 padding=same,而不应用任何 MaxPooling1D,我才能使它工作。这些参数的任何更改都会导致张量大小不匹配并且无法编译并出现以下错误:

有谁知道如何解决这种尺寸不匹配并使其发挥作用?

此外,如果输入有多个通道(或特征),则不匹配会更严重!有没有办法处理多个渠道?

0 投票
1 回答
35 浏览

keras - 我的残差神经网络给出了一个非常奇怪的深度图作为输出。我不知道如何改进我的模型?

我从残差模型中得到的输出是一个带有小方块的图像(一个非常低分辨率的图像),但它应该给我一个深度图。图像中的对象丢失了,只有那些小方块是可见的。我不会即兴创作?

定义迷你模型(输入形状):

我的残留模型!!输入图像形状 = (480,640,3)

在此处输入图像描述

实际效果:图像由小方块组成,灰度等级不同。预期结果:图像应该是与输入(480,640,3)大小相同的深度图

0 投票
1 回答
1085 浏览

keras - 剩余 LSTM 层

我无法理解 keras 中 LSTM 层中的张量行为。

我已经预处理了看起来像 [样本、时间步长、特征] 的数字数据。所以 10 000 个样本、24 个时间步长和 10 个预测变量。

我想堆叠剩余连接,但我不确定我做对了:

现在,作为张量的 x 的形状是 [?,?,32]。我期待 [?,32,10]。我应该将数据重塑为 [样本、特征、时间步长]?然后我形成 res:

现在我不确定这是否正确,或者我应该这样做

非常感谢任何见解。

JJ