问题标签 [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.
neural-network - 我可以为一个带有千层面的特征向量使用多个标签吗?
我有一个语义分割问题,如果我可以为一个特征向量设置多个标签,那就太好了。因此,我的数据的某些部分属于 1、2 和 3 类(以及其他仅属于一个类,有些根本不属于任何类......)。
我认为一个类似但更简单的玩具问题是构建一个神经网络,它以二进制格式获取一个数字作为输入特征,并且应该决定它是否可以被 2、3、两者整除,或者两者都不能整除。
我试过的
我使用nolearn构建了一个具有两个输出神经元的网络(一个用于“可被 2 整除”,另一个用于“可被 3 整除”。
请注意,对于这个简单的示例,我知道我可以简单地添加两个类“可被两者整除”和“不能被 2 或 3 整除”。但是,我只是为一个更复杂的问题创建了这个例子,而我没有这种可能性。
输出层可能不是 softmax 层,因为我不想在输出的总和中得到 1(而是 0、1 或 2)。问题是我不知道我的标签向量应该是什么样子。通常,我只给label_vector = [class_for_first, class_for_second, ...]
,但这次我需要一个课程列表。我该如何调整它?
(不必使用 nolearn 来完成。纯 Lasagne 解决方案也可以。)
python - 不止一类的神经网络不起作用
我正在尝试使用神经网络来解决分类问题。我有 6 个可能的类,并且相同的输入可能在多个类中。
问题是,当我尝试为每个类训练一个 NN 时,我设置 output_num_units = 1 并且在训练时,我传递了 y 的第一列,y[:,0]。我得到以下输出和错误:
如果我尝试使用output_num_units=num_class
(6) 和完整的 y(所有六个字段),首先我会收到 KStratifiedFold 的错误,因为它似乎不希望 y 有多行。如果我设置eval_size=None
,则会收到以下错误:
唯一有效的配置是设置多个输出单元并且只将一列传递给 y。比它训练神经网络,但它似乎不正确,因为它给了我 2 个输出层,我只有一个 Y 可以比较。
我究竟做错了什么?为什么我不能只使用一个输出?我应该将我的 y 类从 6 列的向量转换为只有一列的向量吗?
我使用以下代码(摘录):
python - 从 Lasagne 获取输出(python 深度神经网络框架)
我从 Lasagne 的官方 github 加载了 mnist_conv.py 示例。
在和,我想预测我自己的例子。我看到“lasagne.layers.get_output()”应该处理官方文档中的 numpy 数组,但它不起作用,我不知道该怎么做。
这是我的代码:
但它给了我:
我知道它需要一个 4D 张量,但我不知道如何纠正它。
你能帮助我吗?谢谢
python - 用于千层面的 csv 文件中的 numpy 数组
我开始学习如何将 theano 与千层面一起使用,并从 mnist 示例开始。现在,我想尝试我自己的示例:我有一个 train.csv 文件,其中每一行以 0 或 1 开头,代表正确答案,然后是 773 个 0 和 1,代表输入。我不明白如何在 load_database() 函数中将此文件转换为所需的 numpy 数组。这是 mnist 数据库的原始函数的一部分:
我需要从我的 csv 文件中获取 X_train (输入)和 y_train (每一行的开头)。
谢谢!
python - 向 Lasagne 神经网络层添加偏差
我想知道是否有办法在 Lasagne 神经网络工具包的每一层中添加偏置节点?我一直在尝试在文档中查找相关信息。
这是我建立的网络,但我不知道如何为每一层添加一个偏置节点。
python - 在 Theano 中执行期间选择 GPU
我在 4 GPU 机器上用 theano 和 lasagne 训练神经网络。我的.theanorc
包含以下几行:
所以当我在 python 中执行时 import theano
,我得到Using gpu device 0: GRID K520
如果在导入 theano 后,我选择使用 say gpu1 怎么办?我想动态地做到这一点,也就是说,没有编辑.theanorc
是可能的吗?甚至在运行时选择它?
python - 千层面/Theano 错误的维数
使用修改后的 mnist.py(Lasagne 的主要示例)进入 Lasagne 和 Theano,以训练一个非常简单的 XOR。
在 (1) 处定义训练集,在 (2) 处将输入修改为新维度,并在 (3) 处得到异常:
而且我不知道我做错了什么。当我打印尺寸(或程序的输出直到异常)时,我得到了这个
这似乎是完美的。我做错了什么以及必须如何形成阵列才能工作?
matplotlib - Live plot losses while training neural net in Theano/lasagne
I'm training a neural net in Theano and lasagne, running the code in an iPython notebook. I like having the train and valid loss displayed at each iteration, like this:
but I would also like to see the live/dynamic plot of the two losses. Is there a built-in way to do so?
I have tried creating a custom class and adding it to my net's on_epoch_finished
, but either I get a new plot at each iteration (I'd like a single one, updating), either I have to erase the previous output at each iteration, and thus cannot see the text output (which I want to keep).
theano - 用千层面中的数据增强聚合预测
我正在研究 MNIST 数据集并使用数据增强来训练神经网络。我有一个 BatchIterator,它从每张图片中随机提取 24、24 子图像,并将其用作 NN 的输入。
就训练而言,一切都很顺利。但是对于预测,我想从给定图像中提取 5 个子图像,并对预测进行平均,但我无法让它工作:
这是我的 BatchIterator:
将我的网络与训练数据相匹配是可行的,但是当我这样做时net.predict(X_test)
,我会得到一个错误,因为CropIterator.transform()
我相信它被称为yb
等于None
。
这是完整的调用堆栈:
关于如何在测试部分修复它的任何想法CropIterator.transform()
?
python - 如何在 nolearn, lasagne 中定义成本函数?
我在 nolearn 中做一个神经网络,这是一个使用千层面的基于 Theano 的库。
我不明白如何定义自己的成本函数。
输出层只有 3 个神经元[0, 1, 2]
,我希望它能够确定它何时给出 1 或 2,否则——如果它不确定 1、2——则只返回 0。
所以,我想出了一个成本函数(需要调整),其中 1 和 2 的成本是 0 的两倍,但我不明白如何告诉网络。
这是更新的代码,但我如何告诉 SGD 使用我的成本函数而不是它自己的?
编辑: 完整的网络代码是:
使用时编辑
错误regression=True