问题标签 [matconvnet]

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 投票
1 回答
725 浏览

optimization - MatConvNet 中的 Adam 优化器

我尝试通过更改 cnn_train 中的以下代码来实现 Adam 而不是默认的 SGD 优化器:

至:

但是,我收到一个错误:

你们有没有尝试过从默认编译器更改?我还应该在 cnn_train 中更改什么?


Adam函数的代码:

0 投票
1 回答
837 浏览

matlab - Deep Neural Networks,Alexnet 输出和损失函数的关系是什么?

我试图用 Matconvnet DagNN 来理解 DNN。我有一个基于以下最后两层网络的问题,该网络使用欧几里得损失进行回归

L2Loss 的代码在哪里

X是fc9层的输出,是长度为100(batch size)的特征向量,c是标签。

  1. 在损失函数中,如何比较两者?X 是一个激活,一个不是概率的向量。我猜。C是标签,整数值范围从..0-10。那么如何比较和减去它们呢?不知道这两者有没有关系?
  2. 此外,反向传播如何比较 fc9 输出和标签以实现最小化?

*-----------新修改的L2回归函数

enter image description here

0 投票
1 回答
109 浏览

deep-learning - 在 Matconvnet 中,当 Batchnormalization=false 为 true 时,是否可以进行批量标准化

我正在使用 matconvnet 库。在 MNIST 示例中,默认参数 batchnormalization=true。但是 VL_NNBNORM() 函数什么都没有(只是注释行)。它是否有效?还是我必须更改 vl_nnbnnorm 功能?我的意思是,如果我将 batchnormalization=false 更改为 true,就足够了吗?谢谢..

0 投票
1 回答
638 浏览

caffe - 将值缩放到 [0,1] 会影响 CNN 学习过程吗?

我正在使用 CNN 进行语义分割。

我已将图像的值标准化为范围 [0,1]。我已经多次训练我的网络,学习曲线似乎学习得很好,但是,输出总是黑色图像。我的问题是缩放真的会影响学习还是像素值的范围应该保持在 0-255 范围内?

非常感谢。

0 投票
1 回答
587 浏览

neural-network - 卷积神经网络,使用 MatConvNet 工具箱实现。如何处理过拟合?

我目前一直在与 CNN 合作,并且很难处理我认为过度拟合的问题。具体来说,即使我的训练数据收敛到最小误差,我的验证数据仍然拒绝在误差方面下降。我使用的输入数据是 512 x 650 x 1 x 4000(2D 数据,4000 个样本),我试图区分的数据只有两个类(A 类和 B 类)。我知道我将来需要更多的样本,但就目前而言,我只想在投资生成更多数据之前看到我的验证错误下降一点。

我的网络都有大约 60-70 层长,并且包括以下类型的层:

块示例

卷积层 [3 x 3] 过滤器大小,步幅 [1 x 1],填充 [1 1 1 1]

ReLU 层(非线性)

批量归一化(对训练数据收敛和实现速度有很大帮助)

最大池化层 [2 x 2] 过滤器大小,步幅 [2 x 2],填充 [0 0 0 0]

然后我重复这个“块”,直到我的输入数据是 1 x 1 x N 大小,然后我通过几个完全连接的层运行它,然后进入一个 softmax。

下面是我的实际 MatConvNet 代码以供检查,并附有输出图。对于这些图,蓝色代表我的训练错误,橙色代表我的验证错误。我从下面的代码链接我最近的。

我的问题:

1)如何知道他们的数据使用什么过滤器大小?我知道这是一个经验过程,但这背后肯定有某种直觉吗?我已经阅读了有关使用 [3x3] 小型过滤器并使用了很多的论文(VGG.net 等),但即使在考虑到这一点设计了一个 70 层网络之后,仍然没有验证错误下降。

2)我已经尝试过 dropout 层,因为它们很受欢迎,可以减少过度拟合……我在上面显示的“块”中的 ReLU 和池化层之后,将 dropout 层放置在整个网络中,但在所有卷积层之间。不幸的是,它对我的​​验证数据没有影响,错误仍然是一样的。接下来,我尝试仅在完全连接的层之后使用它,因为那是在我的架构中创建最多神经元(或特征图)的地方,但仍然没有运气。我读过关于辍学的论文。我应该放弃使用它吗?这又是不是又有“窍门”了?

3)如果我尝试使用较小的网络(我已经读过这是一种处理过度拟合的下降方式),我如何有效地减少数据的大小?只是最大池化?

任何建议都会很棒。

再次感谢大家阅读这个长问题。我向你保证,我已经完成了我的研究,发现从长远来看,在这里提问可能对我有更多帮助。

CNN 错误输出图

MatConvNet 代码(用于 CNN 设计的 Matlab 工具箱)

0 投票
1 回答
698 浏览

computer-vision - 可视化每个 CNN 层的学习过滤器

谁能告诉我如何可视化每个 CNN 层的学习过滤器?以下答案告诉我如何仅可视化第一个 CNN 层的学习过滤器,但无法可视化其他 CNN 层。

1)您可以恢复过滤器并使用Matlab的功能将它们显示为图像。例如,从http://www.vlfeat.org/matconvnet/pretrained/加载预训练网络后:

2) 您可能会发现 VLFeat 函数 vl_imarraysc 对显示多个过滤器很有用。http://www.vlfeat.org/matlab/vl_imarraysc.html

0 投票
1 回答
379 浏览

matlab - MatConvNet,错误与客观图的理解

应该如何解释 DAG 包装器的图形输出?这方面的文档绝对最少。与“目标”相关时,能量与时代是什么意思?错误图和目标图有什么区别?MatConvNet 是否尝试最小化目标而不是错误图?MatConvNet 如何在 DAG 包装器与简单包装器中处理这些输出图?拜托,有人必须对此有所了解。我已经搜索过回复,但给出的只是不可靠的假设......

下面附上示例图片。

输出图 #1(潜在过拟合)

输出图 #2(误差和训练收敛)

0 投票
1 回答
72 浏览

matlab - 深度网络在物体检测中如何接受不同尺度的图像?

用 MatConvNet 构建的网络接受不同尺度的图像并对其进行评估。例如 :-

在调试时,我发现img调整大小并评估循环的每次迭代。但是 network( net) 应该接受固定图像。作为 -

加载训练有素的网络后:-

for循环内部:-(iter 1)

(迭代 2)

等等.... 那么 DagNN 如何处理此类输入并评估自身?(我是 MatConvNet 的新手,在文档中找不到任何帮助。所以请回答这个问题并建议如何在 keras 中构建这些东西)

0 投票
1 回答
214 浏览

matlab - 更新最终 FC 层以微调 AlexNet 时出错

您好,我最近开始为我自己的数据集微调 Alexnet 模型。

我想修改最后两层,因为我只有两个类:

但是当我像这样修改最终的 FC 层时,它给了我错误。

任何人,请帮我解决错误

谢谢

更新:

在此处输入图像描述

0 投票
1 回答
76 浏览

matlab - Matconvnet 在尝试使用 parapool 时显示错误

我正在尝试使用 parapooling 在 matconvnet 中运行 mnist 示例。我分配了 2 个 gpus,但在尝试运行 cnn_mnist_experiments 时显示此错误:

显然,工作人员无法访问“vl_cudatool”文件。这里可能是什么问题?