从sklearn的MLPClassifier检索最终隐藏的激活层输出

内森·麦考伊(Nathan McCoy)

我想这样做使用sklearn与神经网络最终隐藏激活层输出一些测试MLPClassifierfit廷的数据。

例如,如果我创建一个分类器,则假设数据X_train带有标签y_train和两个隐藏的大小层(300,100)

clf = MLPClassifier(hidden_layer_sizes=(300,100))
clf.fit(X_train,y_train)

我希望能够以某种方式调用一个函数,以检索最终隐藏的激活层矢量的长度,100以用于其他测试。

假设测试集X_test, y_test,正常预测将是:

preds = clf.predict(X_test)

但是,我想做些类似的事情:

activation_layers_for_all_X_test = clf.get_final_activation_output(X_test)

诸如此类的功能已经get_weights存在,但这只会对我有所帮助。除了我自己进行转换之外,还有另一种方法可以检索最终隐藏层激活的最终隐藏层输出吗?

以该图为例:

我想要的输出是Out Layer,即最终隐藏层的最终激活输出。

piman314

就像我在上面的评论中说的那样,似乎没有一个功能可以完全满足您的要求,sklearn但是您可以_predict很轻松地破解该功能以使其按您的意愿进行操作。以下代码将返回所有激活,您可以将其编辑return activations[-2]为仅需的一点时间。

def get_activations(clf, X):
        hidden_layer_sizes = clf.hidden_layer_sizes
        if not hasattr(hidden_layer_sizes, "__iter__"):
            hidden_layer_sizes = [hidden_layer_sizes]
        hidden_layer_sizes = list(hidden_layer_sizes)
        layer_units = [X.shape[1]] + hidden_layer_sizes + \
            [clf.n_outputs_]
        activations = [X]
        for i in range(clf.n_layers_ - 1):
            activations.append(np.empty((X.shape[0],
                                         layer_units[i + 1])))
        clf._forward_pass(activations)
        return activations

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

sklearn 的 MLPClassifier() 的隐藏层与 keras/tensorflow 的密集层相同吗?

sklearn的MLPClassifier的输入和输出层中有多少个节点用于MNIST数字分类任务

获取隐藏层输出

从非最终Keras模型层获取输出

Tensorflow 输出层的不同激活函数

如果我们不将激活应用于前馈神经网络的隐藏层而仅应用于输出层怎么办?

tensorflow 2:使用隐藏层输出的损失

PyTorch:创建非完全连接层/连接隐藏层的输出

SKlearn导入MLPClassifier失败

模型停止后从层输出最终值(而不是权重)

神经网络中回归模型输出层的激活函数

ScikitLearn的MLPClasssifier在输出层中使用哪种激活方式?

MLPClassifier 的 predict_proba() 函数从 sklearn 输出总的可能性不等于 1

如何使用Keras API提取“从输入层到隐藏层”和“从隐藏层到输出层”的权重?

partial_fit Sklearn的MLPClassifier

深度学习:存储隐藏层的输出python keras

如何在Tensorflow中显示隐藏层输出

CNTK Python API:评估隐藏层/多个输出

Softmax MLP 分类器 - 在隐藏层中使用哪个激活函数?

如何在pylearn2的隐藏层中使用泄漏的ReLus作为激活功能

如何实现包含具有不同激活功能的神经元的单个隐藏层?

将softmax用作隐藏层激活函数在回归(非分类)问题中是否可以接受?

没有隐藏层和线性激活函数的神经网络应该近似线性回归?

为什么只在输出层而不是隐藏层中使用softmax?

总共有5层,4个隐藏层和1个输出层。我的理解对吗?

输出层在自定义估算器中没有激活功能

如果可以激活一个以上的输出,那么可以替换softmax层吗?

为什么keras-rl示例总是在输出层中选择线性激活?

激活层的keras用法,而不是激活参数