Python 使用sci工具包从ANN检索矩阵
使用Python3.5,我执行以下操作Python 使用sci工具包从ANN检索矩阵,python,machine-learning,scikit-learn,neural-network,Python,Machine Learning,Scikit Learn,Neural Network,使用Python3.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 feat
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\u0]
获得矩阵,但是当我将它乘以一个测试用例时,我得不到0或1
我要做的是根据实验室数据训练神经网络,然后在一块硬件上实现矩阵乘法。硬件可以做基本的运算,所以我需要将我的ANN分解成一个矩阵,然后将矩阵乘法编程为迭代乘法/加法
np.dot((np.dot(X_test[0],reg.coefs_[0]) +reg.intercepts_[0] ),reg.coefs_[1]) + reg.intercepts_[1]
详细的答案如下(这里的版本甚至更长:)
感知器神经网络可以这样建模:
这真正的意思是“将输入值乘以一个权重,然后加上。然后加上一个偏差值。然后激活。然后乘以权重,然后加上。然后激活。然后重复!”
作为矩阵数学,它看起来是这样的
因此,reg.coefs\uu
是矩阵系数(每层),而reg.intercepts\uu
是激活值(同样,每层)