首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >神经网络中神经网络的反向传播与结构

神经网络中神经网络的反向传播与结构
EN

Stack Overflow用户
提问于 2017-02-07 19:49:12
回答 2查看 807关注 0票数 0

我正在尝试使用坐骨神经网络框架学习神经网络,我了解神经网络的基本知识,现在尝试用scikit-learn来实现它。但我对两点感到困惑。

1-这个神经网络的结构是什么?不知怎么的,在我感觉到的一些例子中,有些人不把输入层作为一个层。否则,我认为这是因为一个2层NN有一个输入层,在输出层有100个节点和1个节点。

代码语言:javascript
复制
from sknn.mlp import Classifier, Layer

nn = Classifier(
   layers=[
    Layer("Maxout", units=100, pieces=2),
    Layer("Softmax")],
learning_rate=0.001,
n_iter=25)

nn.fit(X_train, y_train)

2-坐骨神经网络在我上面写的代码中做反向传播吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-17 03:59:23

1-在scikit神经网络框架中,输入层不显示,但当我们向系统提供训练数据时,输入层作为一个层在后台显示。

代码语言:javascript
复制
nn.fit(X_train, y_train)

例如,假设我们使用的是虹膜花数据集。它有3个类,所以如果是这样的话,框架可以从y_train中理解这一点,并且它用3个类创建了3个输入层。

代码语言:javascript
复制
y_train = [0,0,0,1,2,]
X_train = [[ 7.1  3.   5.9  2.1]
           [ 5.9  3.   4.2  1.5]
           [ 5.5  2.4  3.7  1. ]
           [ 6.1  2.8  4.7  1.2]
           [ 5.   2.3  3.3  1. ]]

除了最后一层,所有其他层都是隐藏层。我看到当我操作最后一层时,得到了这个错误

代码语言:javascript
复制
    nn = Classifier(
    layers=[
            Layer("Maxout", units=100, pieces=2),
            Layer("Softmax",units=1)],   -----> if units is 3 that's ok!
            learning_rate=0.001,
            n_iter=25)
    "Mismatch between dataset size and units in output layer."
    AssertionError: Mismatch between dataset size and units in output layer.

2-更详细的解释;感谢datascience.stackexchange的@robintibor。他在这里解释了这两个问题,解释

谢谢@user7534232的答复:)

票数 0
EN

Stack Overflow用户

发布于 2017-02-08 11:36:32

  1. 假设X_train中的每个训练示例都有M个特性,并且在y_train中有C类:输入层(在代码中没有显式显示)有M个节点。隐藏层有100个节点。输出层有C节点(每个节点编码每个类的分数)。
  2. .fit()是一种方法,它提供训练示例并使用反向传播来训练神经网络。

另外:也许您必须为最后一层添加units=C --我认为这是一个分类问题。如果您只需要一个值(一个分数,而不是一个类标签),那么使用Regressor

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42098700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档