搭建乙個簡單的神經網路

2021-10-11 07:46:41 字數 1486 閱讀 9753

搭建乙個簡單二分類神經網路。

乙個簡單的三層網路,包括輸入層,隱層,輸出層。反向傳播迭代更新。

軟體:pycharm

python version:3.7

**:

import numpy as np

class

neuralnetwork

:def

__init__

(self)

:pass

##實現sigmode函式,同時通過true/false 來分別返回sigmode函式的導數和函式

defsigmode

(self, x, deriv=

false):

if deriv:

return x *(1

- x)

else

:return1/

(1+ np.exp(

-x))

##開始訓練,train_num訓練次數

deftrain

(self, x, y, train_num)

: learn_rate =

1##兩層引數,隨機生成

self.w0 =

2* np.random.random(

(x.shape[1]

,4))

-1self.w1 =

2* np.random.random((4

,1))

-1for i in

range

(train_num)

:##前向傳播

layer0 = x

layer1 = self.sigmode(np.dot(layer0, self.w0)

) layer2 = self.sigmode(np.dot(layer1, self.w1)

)##反向傳播

layer2_error = y - layer2

layer2_delta = layer2_error * self.sigmode(layer2,

true

) layer1_error = layer2_delta.dot(self.w1.t)

layer1_delta = layer1_error * self.sigmode(layer1,

true

) self.w1 += learn_rate * layer1.t.dot(layer2_delta)

self.w0 += learn_rate * layer0.t.dot(layer1_delta)

##測試

defresult

(self, test)

:return np.

round

(self.sigmode(np.dot(self.sigmode(np.dot(test, self.w0)

), self.w1)

))

搭建乙個簡單的神經網路

def add layer 最基礎的四個引數 輸入值,輸入的大小,輸出的大小和激勵函式,激勵函式可以自己新增,也可以不使用激勵函式。def add layer inputs,in size,out size,activation function none 接下來我們定義weight和biases ...

搭建乙個簡單的卷積神經網路

神經網路的基本組成單元是神經元,在數學上的神經元模型是和在生物學上的神經細胞對應的。人工神經網路理論是用神經元這種抽象的數學模型來描述客觀世界的生物細胞的。例如隨機產生32組生產出的零件的體積和重量,訓練3000輪,每500輪輸出一次損失函式 1 匯入模型,生成模擬資料集 import tensor...

簡單搭建神經網路

簡單的神經網路 準備,前傳,後傳,迭代 下面是乙個簡單的神經網路搭建的 coding utf 8 import tensorflow as tf import numpy as np batch size 8 seed 23455 基於seed產生隨機數 rng np.random.randomst...