Python中的二进制输出神经网络

2024-09-20 23:02:59 发布

您现在位置:Python中文网/ 问答频道 /正文

作为个人项目的一部分,我试图用自己的数据修改ano文档(Multilayer Perceptron)中给出的示例代码。在

到目前为止,我设法以所需的格式带来我自己的(文本)数据,我想构建一个二进制分类器。问题是当我写下输出的数量是1,也就是说

classifier = MLP(rng=rng, input=x, n_in=49, n_hidden=n_hidden, n_out=1)

我得到以下错误:

^{pr2}$

我的训练数据(在转换为ano共享类型之前)的输出如下:

array([1, 1, 1, ..., 0, 0, 0], dtype=int64)

如果没有任何一个神经元的输出都是不正常的,那么就没有了。在

有人能解释一下为什么二进制输出的代码会给我一个错误吗?我该怎么做?在

谢谢你!在


Tags: 数据项目代码文档示例格式错误二进制
1条回答
网友
1楼 · 发布于 2024-09-20 23:02:59

在MLP教程中用作输出层的logistic回归类不是“标准”logistic回归,它给出一个输出值并仅区分两个类,而是一个多项式logistic回归(又称Softmax回归),它为每个类提供一个值,告诉输入属于它们的概率。所以,如果你有10个类,你也需要10个单位,显然所有输出单位的总和等于1,因为这是一个概率分布。在

尽管使用了类名(“LogistRegression”),但它在linked source code中的doctoring不怀疑它的真正意图('''Multi-class Logistic Regression Class [...]''')。在

而在您的问题中,您有两个类,您还需要2个输出单元,n_out的值必须是2而不是1。当然,对于两个类,一个输出的值总是1减去另一个的值。在

另外,检查您是否真的需要int64而不是int32。西亚诺对第二个有更好的支持。在

相关问题 更多 >

    热门问题