我想使用scikit-neuralnetwork进行NN分类,我有5个类,所以在输出层中,我有unit = 5,但是我遇到了这个错误:数据集大小和输出层中的单位不匹配,
根据文档,我重塑了y_train并将“ Sigmoid”函数应用于输出层:
http://scikit-neuralnetwork.readthedocs.io/en/latest/guide_model.html#classification
如果要进行多标签分类,只需使用具有多个维度(例如,三个不同类别的形状(N,3)。然后,确保最后一层是Sigmoid。
y_train的形状为:(2115,5)
X_train的形状是:(2115,343)
这是代码:
import sknn.mlp as mlp
from sknn.mlp import Classifier
ip_layer = mlp.Layer('Sigmoid', units=1)
hidden_layer = mlp.Layer('Tanh', units=100)
op_layer = mlp.Layer('Sigmoid', units=5)
nn = Classifier(
[ip_layer, hidden_layer, op_layer],
n_iter=10000
)
nn.fit(X_train, y_train)
最佳答案
输入层有一个单位。
如果设置ip_layer = mlp.Layer('Sigmoid', units=343)
,它将正常工作。