我正在尝试使用坐骨神经网络框架学习神经网络,我了解神经网络的基本知识,现在尝试用scikit-learn来实现它。但我对两点感到困惑。
1-这个神经网络的结构是什么?不知怎么的,在我感觉到的一些例子中,有些人不把输入层作为一个层。否则,我认为这是因为一个2层NN有一个输入层,在输出层有100个节点和1个节点。
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-坐骨神经网络在我上面写的代码中做反向传播吗?
谢谢!
发布于 2017-02-07 23:35:37
1)据我所知,scikit神经网络试图通过调用nn.fit时给出的X和y数据自动确定正确的输入和输出大小。因此,结构应是:
似乎在这里使用数据的输入形状:https://github.com/aigamedev/scikit-neuralnetwork/blob/b7fd0c089bd7c721c4d9cf9ca71eed74c6bafc5e/sknn/backend/lasagne/mlp.py#L183
但是,请注意,maxout似乎不再受支持:https://github.com/aigamedev/scikit-neuralnetwork/issues/142
2)是的,它通过调用适当的千层面/theano函数来创建/编译反向传播训练函数:https://github.com/aigamedev/scikit-neuralnetwork/blob/b7fd0c089bd7c721c4d9cf9ca71eed74c6bafc5e/sknn/backend/lasagne/mlp.py#L50-L103,从而使用反向传播。
https://datascience.stackexchange.com/questions/16819
复制相似问题