USing 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 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解构成一个矩阵,然后将矩阵乘法编程为迭代乘法/加法
发布于 2017-02-16 04:26:03
简短的“针对这个问题”的答案是
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_是激活值(同样,每层)
https://stackoverflow.com/questions/42257708
复制相似问题