[英]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.