91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 14.29MB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2023-06-29
  • 語言: Python
  • 標簽: BP算法??人臉識別??

資源簡介

利用Python實現的BP神經網絡進行人臉識別,源碼公開,打開就能使用,歡迎大家學習借鑒,進制使用于非法用途或者有損他人利益。

資源截圖

代碼片段和文件信息

#coding=utf8
from?neuralnetworktool?import?*
import?random
import?traceback
class?Neuron():
def?__init__(selfnInput?=?0studyspeed?=?1thresholdFunc?=?sigmoidX):
self.nInput?=?nInput
#init?the?weight?in?range?-1?to?1
randomweights?=?[random.uniform(-1?1)?for?i?in?range(nInput)]
self.weights?=?randomweights
self.thresholdFunc?=?thresholdFunc
self.studyspeed?=?studyspeed
self.inputs?=?[]

def?setInputs(selfinputs):
self.inputs?=?inputs

def?getInputs(self):
return?self.inputs

def?getOutput(selfinputs):
self.inputs?=?inputs
outputs?=?np.squeeze(np.asarray(self.weights?*?inputs))
#for?i?in?range(len(self.weights)):
# outputs?+=?self.weights[i]?*?self.inputs[i]
return?round(self.thresholdFunc(outputs)3)


def?adjustWeights(selfinputsexceptOutputrealOutput?=?None):
if?realOutput?==?None:
f?=?self.getOutput(inputs)
else:
f?=?realOutput
d?=?exceptOutput
r?=?(d?-?f)?*?f?*?(1?-?f)
self.adjustWeightsWithR(r)
return?r

#R反映出網絡輸出的平方差對相應的sigmoid函數的輸入中的變化的敏感度
def?adjustWeightsWithR(selfR):
self.weights?+=?self.studyspeed?*?R?*??np.transpose(self.inputs)

def?getWeights(self):
return?np.squeeze(np.asarray(self.weights))

def?getWeightsMatrix(self):
return?self.weights

def?setWeights(selfweights):
self.weights?=?np.matrix(weights)

def?setStudySpeed(selfstudyspeed):
self.studyspeed?=?studyspeed

def?printInfo(self):
print?self.weights


class?NeuralNetWork():
def?__init__(selfnInput=0nHide=0nOutput=0studyspeed=0):
self.nInput?=?nInput
self.nHide?=?nHide
self.nOutput?=?nOutput
self.studyspeed?=?studyspeed
self.inputNeurons?=?[0?for?i?in?range(nInput)]
self.hideNeurons?=?[
Neuron(nInput?=?nInputstudyspeed?=?studyspeed)?for?i?in?range(nHide)]
self.outputNeurons?=?[
Neuron(nInput?=?nHidestudyspeed?=?studyspeed)?for?i?in?range(nOutput)]


def?backpropagation(selftrainings=[]examples=[]):
for?i?in?range(len(trainings)):
self.backpropagationSingle(
training?=?trainings[i]
example?=?examples[i]


def?backpropagationSingle(selftrainingexample):
#d為訓練集目標輸出
d?=?example
#輸入轉化為單列矩陣
self.inputNeurons?=?np.transpose(np.matrix(training))
#用于保存隱藏層輸出
hideoutputs?=?[]
#對輸入層作為輸入,得到隱藏層輸出結果
for?hideNeuron?in?self.hideNeurons:
hideoutputs.append(hideNeuron.getOutput(self.inputNeurons))


#將隱藏層結果作為輸出層的輸入,得到輸出層的結果
outputlayeroutputs?=?[]
hideOutPutMatrixs?=??np.transpose(np.matrix(hideoutputs))
for?outputNeuron?in?self.outputNeurons:
outputlayeroutputs.append(outputNeuron.getOutput(hideOutPutMatrixs))
#輸出層結果與期望結果做比較,并且反向傳播調節
#保存調節前輸出層權值
beforeweights?=?[]

#對輸出層進行調節
#保存輸出層各個神經元的調節因子
outputRs?=?[]
for?i?in?range(self.nOutput):
#f為實際輸出結果
f?=?outputlayeroutputs[i]
outputR?=?(d[i]?-?f)?*?f?*?(1?-?f)
outputRs.append(outputR)
#保存第i個輸出神經元的調節前權值
beforeweights.append(self.outputNeurons[i].getWeights())
#對每個輸出層神經元進行調節
self.outputNeurons[i].adjustWeightsWithR(outputR)
#對隱藏層進行調節
for?i?in?range(s

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-05-05?03:06??NeuralNetwork-master\
?????文件?????????378??2016-05-05?03:06??NeuralNetwork-master\.gitattributes
?????文件?????????655??2016-05-05?03:06??NeuralNetwork-master\.gitignore
?????文件?????????744??2016-05-05?03:06??NeuralNetwork-master\README.md
?????文件???????????0??2016-05-05?03:06??NeuralNetwork-master\TestConfig.txt
?????目錄???????????0??2016-05-05?03:06??NeuralNetwork-master\data\
?????目錄???????????0??2016-05-05?03:06??NeuralNetwork-master\data\faces\
?????文件?????????131??2016-05-05?03:06??NeuralNetwork-master\data\faces\.anonr
?????目錄???????????0??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\
?????文件???????42648??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_angry_open.pgm
?????文件????????3853??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_angry_open_2.pgm
?????文件?????????973??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_angry_open_4.pgm
?????文件???????42480??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_angry_sunglasses.pgm
?????文件????????3853??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_angry_sunglasses_2.pgm
?????文件?????????973??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_angry_sunglasses_4.pgm
?????文件???????42802??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_happy_open.pgm
?????文件????????3853??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_happy_open_2.pgm
?????文件?????????973??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_happy_open_4.pgm
?????文件???????42944??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_happy_sunglasses.pgm
?????文件????????3853??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_happy_sunglasses_2.pgm
?????文件?????????973??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_happy_sunglasses_4.pgm
?????文件???????43292??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_neutral_open.pgm
?????文件????????3853??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_neutral_open_2.pgm
?????文件?????????973??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_neutral_open_4.pgm
?????文件???????42974??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_neutral_sunglasses.pgm
?????文件????????3853??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_neutral_sunglasses_2.pgm
?????文件?????????973??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_neutral_sunglasses_4.pgm
?????文件???????42693??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_sad_open.pgm
?????文件????????3853??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_sad_open_2.pgm
?????文件?????????973??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_sad_open_4.pgm
?????文件???????42967??2016-05-05?03:06??NeuralNetwork-master\data\faces\an2i\an2i_left_sad_sunglasses.pgm
............此處省略1896個文件信息

評論

共有 條評論