繁体   English   中英

使用sci-kit Learn从ANN检索矩阵

[英]retrieve matrix from ANN using sci-kit learn

使用python 3.5,我执行以下操作

from sklearn.neural_network import MLPRegressor
import pandas as pd

从sklearn导入数据集从sklearn.decomposition导入PCA

# import some data to play with
iris = datasets.load_iris()
X = iris.data[0:100, :2]  # we only take the first two features.
Y = iris.target[0:100]

X = StandardScaler().fit_transform(X)

X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.15)
reg = MLPRegressor(hidden_layer_sizes=(10,),
                           solver="lbfgs", #solver="lbfgs",
                           max_iter = 10000,
                           activation = 'relu')
reg.fit(X_train,y_train)

我可以使用reg.coefs_[0]获得矩阵,但是当我将其乘以测试用例时,我得不到0或1

我要做的是根据实验室数据训练ANN,然后将其实现为硬件上的矩阵乘法。 硬件可以执行基本算术运算,因此我需要将ANN解构为矩阵,然后将矩阵乘法编程为迭代乘法/加法

简短的“特定于此问题”的答案是

np.dot((np.dot(X_test[0],reg.coefs_[0]) +reg.intercepts_[0] ),reg.coefs_[1]) + reg.intercepts_[1]

长答案如下(甚至更长的版本在这里: https : //www.mohammadathar.com/blog/2017/2/15/a-different-look-at-neural-networks

感知器神经网络可以这样建模: 在此处输入图片说明

真正的意思是“将输入值乘以权重,然后相加。然后加上一个偏差值。然后激活。然后乘以权重并相加,然后激活。然后重复!”

作为矩阵数学,它看起来像这样

在此处输入图片说明

因此, reg.coefs_是矩阵系数(每层), reg.intercepts_是激活值(同样,每层)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM