问题标签 [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.
theano - 输入维度不匹配二元交叉熵千层面和 Theano
我阅读了网上所有关于人们忘记将目标向量更改为矩阵的问题的帖子,并且由于更改后问题仍然存在,我决定在这里提出我的问题。下面提到了解决方法,但出现了新问题,感谢您的建议!
使用卷积网络设置和带有 sigmoid 激活函数的二元交叉熵,我得到了一个维度不匹配的问题,但不是在训练数据期间,只有在验证/测试数据评估期间。出于某种奇怪的原因,我的验证集向量中的他的维度被切换了,我不知道为什么。如上所述,训练效果很好。代码如下,非常感谢您的帮助(很抱歉劫持了线程,但我没有看到创建新线程的理由),其中大部分是从千层面教程示例中复制的。
解决方法和新问题:
- 在 valAcc 定义中删除“axis = 1”会有所帮助,但验证准确度仍然为零,并且无论我有多少节点、层、过滤器等,测试分类总是返回相同的结果。即使改变训练集的大小(我有大约 350 个样本,每个类都有 48x64 灰度图像)也不会改变这一点。所以似乎有些不对劲
网络创建:
所有集合的目标矩阵都是这样创建的(以训练目标向量为例)
...以及theano变量本身
最后,这里有两个循环,训练和测试。第一个很好,第二个抛出错误,摘录如下
错误(摘录)
再次感谢您的帮助!
python - 循环层的奇怪梯度结果
我一直在尝试非常基本的循环网络,并且看到了非常奇怪的行为。我花了很多时间试图缩小出错的范围,最终发现使用循环层时,theano 计算的梯度和有限微分计算的梯度完全不同。这里发生了什么?
这是我遇到的问题:
我有 n_seq 个维度为 n_feat 的 n_steps 特征向量序列,以及它们在 n_class 类中的标签。标签是每个时间步长,而不是每个序列(所以我有 n_seq*n_steps 个标签)。我的目标是训练一个模型来正确分类特征向量。
这是我的最小示例:
(实际上,数据中会有一些顺序信息,因此循环网络应该做得更好,但在这个最小的示例中,我生成纯随机数据,这足以暴露错误。)
我创建了 2 个最小网络:
1) 常规前馈(非循环),只有输入层和带有 softmax 的输出层(无隐藏层)。我通过考虑 n_seq*n_steps “独立”特征向量的“批次”来丢弃顺序信息。
2)一个相同的网络,但输出层是循环的。现在批次的大小为 n_seq,每个输入都是 n_steps 特征向量的完整序列。最后,我将输出重新整形为大小为 n_seq*n_steps 的“批次”。
如果循环权重设置为 0,则 2 个网络应该是等价的。事实上,我确实看到在这种情况下,两个网络的初始损失是相同的,无论我对前馈权重进行什么随机初始化。如果我实现有限微分,我也会得到前馈权重的(初始)梯度是相同的(因为它们应该是相同的)。然而,从 theano 获得的梯度完全不同(但仅适用于循环网络)。
这是我的代码示例结果:
注意:第一次运行时,我收到此警告,我不知道是什么触发了它,但我敢打赌它与我的问题有关。警告:在严格模式下,所有必需的共享变量必须作为 non_sequences 的一部分传递'必须作为 non_sequences 的一部分传递',警告)
任何见解将不胜感激!
代码:
结果:
python - 从神经网络层去除偏差
我想删除偏差参数。我试图包括thebias=None
我定义我的神经网络的位置,但它不起作用。
neural-network - 最大池化指数
我正在尝试在千层面中找到索引 2d max pooling
当我尝试构建模型时,它会引发错误
在千层面层中间输出上编码函数的正确方法是什么。
machine-learning - 千层面中 LSTM 的可能问题
使用教程中给出的 LSTM 的简单构造函数,以及维度 [ , ,1] 的输入,人们会期望看到形状为 [ , ,num_units] 的输出。但不管在构造过程中传递了多少个 num_units,输出与输入具有相同的形状。
以下是复制此问题的最小代码...
不合格的 LSTM(我的意思是在其默认模式下)应该为每个单元产生一个输出,对吗?代码是在 kaixhin 的 cuda lasagne docker image docker image 上运行的 给出 了什么?谢谢 !
python - 未设置 lasagne / nolearn 神经网络中参数的可训练属性
我正在使用 lasagne nolearn 实现卷积神经网络。
我想修复一些预先学习的参数。如何设置一些不可训练的层?
实际上,虽然我去掉了一些层的'trainable'属性,但是在拟合之前层信息中显示的数字,即,如
具有***可学习参数的神经网络永远不会改变。
此外,恐怕'handers.py'中的问候功能
应该
但我不确定它对训练有何影响。
theano - 使用 Theano/Lasagne 对 ImageNet 等大规模数据集进行训练的最佳实践?
我发现 Theano/Lasagne 的所有示例都处理像 mnist 和 cifar10 这样的小型数据集,它们可以完全加载到内存中。
我的问题是如何编写有效的代码来训练大规模数据集?具体来说,准备小批量(包括实时数据增强)以保持 GPU 忙碌的最佳方法是什么?
也许喜欢使用 CAFFE 的 ImageDataLayer?例如,我有一个包含所有图像路径和标签的大 txt 文件。显示一些代码将不胜感激。
非常感谢!
python - 烤宽面条基本示例不起作用?
我直接从千层面文档中完成了千层面的安装步骤。现在我正在运行以下示例: https ://github.com/Lasagne/Lasagne/blob/master/examples/mnist.py
预期的输出显示在千层面文档的教程页面上。
但是,到目前为止,它挂在“开始训练……”这一行。它已经卡在这条线上很长一段时间了。
我的设置有什么明显的问题吗?
我下载了 MinGW gcc 并使用 pip 中的以下内容为其设置了环境变量以及 theano: https ://raw.githubusercontent.com/Lasagne/Lasagne/v0.1/requirements.txt
我还使用 pip 下载千层面,也下载了 numpy 和 scipy。
deep-learning - keras 和 lasagne 中的高速公路网络 - 显着的性能差异
我使用 keras 和 lasagne 实现了高速公路网络,而 keras 版本的性能始终低于 lasagne 版本。我在他们两个中使用相同的数据集和元参数。这是keras版本的代码:
这是千层面版本的代码:
现在 keras 版本几乎没有超过逻辑回归,而 lasagne 版本是迄今为止最好的评分算法。关于为什么的任何想法?
python - How to get the output target values for the test data in the following MLP of Lasagne
http://lasagne.readthedocs.org/en/latest/user/tutorial.html#id2
I have tried the following
however I get NAN for all the samples in Y_hat here.
EDIT: I was able to solve the NAN issue. However now my prediction returns only one class (1)