本周任務(wù):LycorisNet的工具類(lèi)(utils類(lèi))設(shè)計(jì)
工具類(lèi)需要包含神經(jīng)網(wǎng)絡(luò)必備的一些函數(shù),諸如各種激活函數(shù):relu,sigmoid,tanh等,還有一些結(jié)構(gòu)層,例如softmax,這些函數(shù)用內(nèi)聯(lián)實(shí)現(xiàn):

工具類(lèi)中還需要實(shí)現(xiàn)包含fitness數(shù)據(jù)的對(duì)象進(jìn)行排序的方法,這一部分利用C++ 模板實(shí)現(xiàn),代碼如下:

對(duì)個(gè)體進(jìn)行種群分類(lèi)的操作中需要計(jì)算兩個(gè)individual的距離,這個(gè)計(jì)算邏輯如下:

實(shí)現(xiàn)individual交配的代碼如下:



mate過(guò)程中藍(lán)框部分為拓?fù)渑判虻膶?shí)現(xiàn),目的是使individual里各節(jié)點(diǎn)按照前饋?lái)樞蚺帕小?/p>