使用Python3.5,我执行以下操作
from sklearn.neural_network import MLPRegressor
import pandas as pd
从sklearn导入数据集 从sklearn.分解导入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
我要做的是训练一个基于实验室数据的人工神经网络,然后在硬件上实现矩阵乘法。硬件可以做基本的运算,所以我需要把我的人工神经网络解构成一个矩阵,然后将矩阵乘法编程为迭代乘法/加法
简而言之,“针对这个问题”的答案是
答案如下(这里的版本更长:https://www.mohammadathar.com/blog/2017/2/15/a-different-look-at-neural-networks)
感知器神经网络可以这样建模:
真正的意思是“将输入值乘以权重,然后相加。然后添加一个偏差值。然后激活。然后乘以权重,再相加。然后激活。再重复一遍!”你知道吗
作为矩阵数学,它看起来像这样
所以
reg.coefs_
是矩阵系数(每层),而reg.intercepts_
是活化值(同样,每层)相关问题 更多 >
编程相关推荐