keras多層感知機MLP

2022-02-26 05:31:20 字數 1854 閱讀 9399

肯定有人要說什麼多層感知機,不就是幾個隱藏層連線在一起的嗎。話是這麼說,但是我覺得我們首先要自己承認自己高階,不然怎麼去說服(hu nong)別人呢

from keras.models import

sequential

from keras.layers import

dense

import

numpy as np

#設定隨機種子,使得每次結果都是一致的

np.random.seed(7)

import

pandas as pd

dataframe = pd.read_csv("

e:/資料集/pimaindians.csv")

print

(dataframe.head())

print

(dataframe.keys())

#匯入資料

#dataset = np.loadtxt("e:/資料集/pimaindians.csv",delimiter=",")

#分割輸入變數和輸出變數

#選擇前8列作為輸入,最有一列作為輸出

x = dataframe.ix[:,list(range(8))]

y = dataframe.ix[:,[8]]

print

(x.head())

print

(y.head())

#將其轉換成np陣列,以輸入到keras模型中去

x =x.values

y=y.values

print

(type(x),x.shape)

#建立模型

model =sequential()

#新增幾個隱藏層

model.add(dense(12,input_dim=8,activation='

relu'))

model.add(dense(8,activation='

relu'))

model.add(dense(1,activation='

sigmoid'))

#編譯模型

model.compile(loss='

binary_crossentropy

',optimizer='

adam

',metrics=['

accuracy'])

#訓練模型

model.fit(x=x,y=y,epochs=150,batch_size=10,validation_split=0.2)

#評估模型

scores=model.evaluate(x=x,y=y)

print('

\n%s:%.2f%%

'%(model.metrics_names[1],scores[1]*100))

view code

畫幾個知識點:

1、pandans按列切片:

#

分割輸入變數和輸出變數

#選擇前8列作為輸入,最有一列作為輸出

x = dataframe.ix[:,list(range(8))]

y = dataframe.ix[:,[8]]

2、dataframe轉換成numpy陣列

#

將其轉換成np陣列,以輸入到keras模型中去

x =x.values

y=y.values

3、keras自動切分資料集

#

訓練模型

model.fit(x=x,y=y,epochs=150,batch_size=10,validation_split=0.2)

多層感知機MLP

關於感知機 1.什麼是感知機 perceptron 感知機是最簡單的神經網路,具備神經網路的必備要素。感知機也稱為感知器,是一種雙層神經網路,即只有輸入層和輸出層而沒有隱層的神經網路。感知機是一種二類分類的線性分類器,其輸入為例項的特徵向量,輸出為例項的類別,感知機屬於判別模型,旨在求出將訓練資料進...

MLP 多層感知機網路

反向傳播神經網路是對非線性可微分函式進行權值訓練的多層網路,是前向神經網路的一種。比如,乙個三層bpn結構如下 由輸入層 隱含層和輸出層三層組成。其中每一層的單元與之相鄰層的所有單元連線,同一層的單元之間沒有連線。當一對學習樣本提供給網路後,神經元的啟用值從輸入層經各中間層向輸出層傳播,在輸出層的各...

多層感知機(MLP)原理簡介

多層感知機 mlp,multilayer perceptron 也叫人工神經網路 ann,artificial neural network 除了輸入輸出層,它中間可以有多個隱層,最簡單的mlp只含乙個隱層,即三層的結構,如下圖 輸入層沒什麼好說,你輸入什麼就是什麼,比如輸入是乙個n維向量,就有n個...