[英]MLP Classifier neurons weights
我有以下MLP神經網絡:
MLP = MLPClassifier(activation= 'tanh', alpha= 1e-05, hidden_layer_sizes= (2, 3), learning_rate= 'constant' , max_iter= 5000)
MLP.fit(X_train,y_train)
print(MLP.coefs_)
據我了解,該神經網絡只有2個隱藏層,第一個隱藏層有2個神經元,第二個隱藏層有3個神經元。 但是,上述輸出到打印系數給出了以下內容:
[array([[-0.15020109, 0.29242019],
[ 0.38515555, 0.06000627],
[-0.04371792, 0.35203079],
[ 0.28167529, 0.05948562],
[-0.46051132, -0.28546222]]), array([[-0.29658042, -1.2229539 , 0.4949065 ],
[-0.95435436, 0.3854664 , 0.6349616 ]]), array([[-0.54332547, 0.27007792, 0.68899707],
[-0.00191208, 0.89295531, -0.22855791],
[-0.58939234, 0.39217616, 1.10214481]])]
我的問題是如何將以上輸出映射到隱藏層中的每個神經元。 乍看之下,似乎第一隱藏層中第一神經元的權重為:[-0.29658042,-1.2229539、0.4949065]。 一個神經元的權重如何才能由3個元素組成的數組?
您還需要考慮輸入層和輸出層。 您似乎正在輸入5維特征並輸出3維輸出。 您的網絡有2個大小分別為2和3的隱藏層 。因此coefs_
應該具有形狀(5,2),(2,3),(3,3)
以便您的輸入從5維變為2維,然后從2-dim到3-dim,然后從3-dim到3-dim作為輸出。 請記住,從一層到另一層的每個連接都有權重。 因此,如果您有5個神經元(輸入層)連接到2個神經元(第一個隱藏層),則需要5*2=10
權重來描述這兩層之間的10個連接。 這正是形狀(5,2)
數組所具有的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.