问题标签 [lasagne]

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 回答
962 浏览

python - 千层面 / Theano 梯度值

我目前正在使用 Lasagne / Theano 研究循环神经网络。

在训练时,使用 Theano 的符号梯度计算更新。

虽然梯度表达式一般来说非常好,但我也对梯度感兴趣以监控训练。

我现在的问题是,是否有一个内置的方法也可以获取渐变值,这是我目前还没有找到的,或者我必须自己做。

提前致谢

0 投票
1 回答
2169 浏览

numpy - Lasagne/Theano 不消耗多核,而 check_blas.py 消耗

我在具有多个cpu核心的 Lasagne/Theano 上运行逻辑回归分类器。

这是我的~/.theanorc文件:

theano/misc/ check_blas.py消耗了所有 20 个内核,但我的脚本没有。当我运行时:

我看到openmp的值为False:

openmp () Doc:允许(或不允许)使用 OpenMP 在 CPU 上进行并行计算。这是创建支持 OpenMP 并行化的 Op 时使用的默认值。最好通过 Theano 配置文件 ~/.theanorc 或使用环境变量 THEANO_FLAGS 来定义它。并行化仅对实现它的某些操作进行,即使对于实现并行性的操作,每个操作都可以自由地尊重或不尊重这个标志。您可以使用环境变量 OMP_NUM_THREADS 控制使用的线程数。如果设置为 1,我们默认禁用 Theano 中的 openmp。 值:假

有人知道我应该如何为我的脚本启用多核功能吗?

我的系统上安装了 blas、atlas、openmp 等,正如我所说,与 check_blas.py 完美配合。

0 投票
1 回答
732 浏览

python - 烤宽面条/ theano的自定义损失函数

我正在尝试创建一个用于千层面的自定义损失函数。

我想使用我用 numpy 编写的 Sorensen-dice 系数,并像这样用于评估:

哪个在做:

骰子 = (2*|X & Y|)/ (|X|+ |Y|)

我现在正在尝试在 theano 中实现这一点,不确定它有多可行。

是否可以将其用作损失函数?我想在分割卷时使用它,但我因为这对于反向传播应该是可区分的,我该如何改变它?

有什么想法吗?

0 投票
1 回答
552 浏览

python - 保存 theano/lasagne 输出参数以供将来分类

我正在尝试保存我的输出参数,以便以后可以继续训练/分类。

我目前正在使用:

正如这里建议的那样。但是,尽管从千层面导入 get_all_param_values,我仍然收到错误消息:

AttributeError:“TensorVariable”对象没有属性“get_params”

我要保存的图层是:

难道我做错了什么?

0 投票
2 回答
1520 浏览

python - 烤宽面条的学习率衰减

我正在使用nesterov 动量来更新卷积神经网络的权重。我正在使用千层面来构建 CNN。如何实现每个时期的学习率衰减?

0 投票
0 回答
125 浏览

python - 人工神经网络不学习训练样本的较低值

我正在尝试训练 ANN,但直到现在它还没有学习训练样本的较低值。我尝试过使用不同的 python 库来训练 ANN。目的是根据其他天气参数预测太阳辐射(回归问题)。我认为 ANN 将较低的值(冬季/阴天)与夜间值(可能)混淆了。我尝试了以下方法,但都没有奏效;

  1. 在不同值之间缩放数据,例如 [0,1],[-1,1]
  2. 标准化数据以具有零均值和单位方差
  3. 洗牌数据
  4. 增加训练样本(从 3 年到 10 年)
  5. 使用不同的训练函数(例如 bfds、gdm)
  6. 尝试不同的传递函数(例如 LogSig、TanSig)
  7. 使用少量输入变量
  8. 改变隐藏层和隐藏层的神经元

下面是我使用神经实验室的代码,但我也使用了 nolearn/lasagne,但它也不起作用。

请看下面,我得到的一些结果。关于我可能做错了什么或任何尝试的方向的任何想法? 结果

0 投票
0 回答
60 浏览

python - 每层的千层面自定义过滤器

我在网上调查了很多,但我没有找到答案!是否可以在 python 中为“Lasagne”包中的每一层定义一个自定义过滤器?(不从特殊过滤器中选择,您也可以为每一层设计过滤器)

如果是,如果没有,是否有任何库可以让我设计 CNN 的能力(平台不重要,但首选 python 或 matlab)?

0 投票
1 回答
2669 浏览

neural-network - 如何正确添加和使用 BatchNormLayer?

介绍

根据千层面文档:“该层应插入线性变换(例如 DenseLayer 或 Conv2DLayer)及其非线性之间。便利函数 batch_norm() 修改现有层以在其非线性之前插入批量归一化。”

然而,千层面也有实用功能:

千层面.layers.batch_norm

但是,由于我的实施,我无法使用该功能。

我的问题是:我应该如何以及在哪里添加 BatchNormLayer?

我可以在卷积层之后添加它吗?还是我应该在 maxpool 之后添加?我是否必须手动消除图层的偏差?

使用的方法 我只是这样使用它:

参考:

https://github.com/Lasagne/Lasagne/blob/master/lasagne/layers/normalization.py#L120-L320

http://lasagne.readthedocs.io/en/latest/modules/layers/normalization.html

0 投票
0 回答
452 浏览

neural-network - 在千层面中使用卷积层然后循环层

我正在尝试实现一个神经网络,该网络在一个轴上输入音符/音高,在另一个轴上输入该音符的八度音阶。

输入应该通过卷积层(Conv2DLayer)。卷积之后,输出应该通过 LSTM 层。

输入 -> 卷积和池化层 -> LSTM 层 -> 输出

问题是 LSTM 层和卷积层具有特定的输入形状

Conv2DLayer 预期输入形状:(batch_size, num_channels, rows, columns) LSTMLayer 预期输入形状:(batch_size, sequence_len, num_inputs)

如何获取形状(batch_size、sequence_len、num_channels、行、列)或类似的输入并构建这样的网络?如果我通过删除 sequence_len 来重塑和展平形状,那么行或列都必须改变,并且形状将被扭曲。

0 投票
1 回答
315 浏览

lasagne - 如何在 Lasagne 中为 EmbeddingLayer 提供固定的嵌入矩阵?

我已经实现了一个使用 Lasagne EmbeddingLayer 的深度学习架构。

现在我已经使用 word2vec 学习了词向量,并且不希望词向量成为我的网络的参数。

阅读文档后,我认为它指定提供给'W'参数的numpy数组是嵌入矩阵的初始值。

如何在代码中声明/指定 EmbeddingLayer 以便它使用输入权重矩阵作为词向量的固定矩阵?