簡體   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