資源簡介
使用c++開發(fā)的人工神經網絡做人臉識別,內含數(shù)據(jù)集及測試集。

代碼片段和文件信息
/*
?******************************************************************
?*?HISTORY
?*?15-Oct-94??Jeff?Shufelt?(js)?Carnegie?Mellon?University
?* Prepared?for?15-681?Fall?1994.
?*
?******************************************************************
?*/
#include?“stdafx.h“
#include?
#include?“backprop.h“
#include?
#define?ABS(x)??????????(((x)?>?0.0)???(x)?:?(-(x)))
#define?fastcopy(tofromlen)\
{\
??register?char?*_to*_from;\
??register?int?_i_l;\
??_to?=?(char?*)(to);\
??_from?=?(char?*)(from);\
??_l?=?(len);\
??for?(_i?=?0;?_i?}
/***?Return?random?number?between?0.0?and?1.0?***/
double?drnd()
{
??return?((double)?rand()?/?(double)?BIGRND);
}
/***?Return?random?number?between?-1.0?and?1.0?***/
double?dpn1()
{
??return?((drnd()?*?2.0)?-?1.0);
}
/***?The?squashing?function.??Currently?it‘s?a?sigmoid.?***/
double?squash(double?x)
{
??return?(1.0?/?(1.0?+?exp(-x)));
}
/***?Allocate?1d?array?of?doubles?***/
double?*alloc_1d_dbl(int?n)
{
??double?*newptr;
??newptr?=?(double?*)?malloc?((unsigned)?(n?*?sizeof?(double)));
??if?(newptr?==?NULL)?{
????printf(“ALLOC_1D_DBL:?Couldn‘t?allocate?array?of?doubles\n“);
????return?(NULL);
??}
??return?(newptr);
}
/***?Allocate?2d?array?of?doubles?***/
double?**alloc_2d_dbl(int?m?int?n)
{
??int?i;
??double?**newptr;
??newptr?=?(double?**)?malloc?((unsigned)?(m?*?sizeof?(double?*)));
??if?(newptr?==?NULL)?{
????printf(“ALLOC_2D_DBL:?Couldn‘t?allocate?array?of?dbl?ptrs\n“);
????return?(NULL);
??}
??for?(i?=?0;?i?????newptr[i]?=?alloc_1d_dbl(n);
??}
??return?(newptr);
}
void?bpnn_randomize_weights(double?**wint?m?int?n)
{
??int?i?j;
??for?(i?=?0;?i?<=?m;?i++)?{
????for?(j?=?0;?j?<=?n;?j++)?{
??????w[i][j]?=?dpn1();
????}
??}
}
void?bpnn_zero_weights(double?**wint?m?int?n)
{
??int?i?j;
??for?(i?=?0;?i?<=?m;?i++)?{
????for?(j?=?0;?j?<=?n;?j++)?{
??????w[i][j]?=?0.0;
????}
??}
}
void?bpnn_initialize(unsigned?int?seed)
{
??printf(“Random?number?generator?seed:?%d\n“?seed);
??srand(seed);
}
BPNN?*bpnn_internal_create(int?n_in?int?n_hidden?int?n_out)
{
??BPNN?*newnet;
??newnet?=?(BPNN?*)?malloc?(sizeof?(BPNN));
??if?(newnet?==?NULL)?{
????printf(“BPNN_CREATE:?Couldn‘t?allocate?neural?network\n“);
????return?(NULL);
??}
??newnet->input_n?=?n_in;
??newnet->hidden_n?=?n_hidden;
??newnet->output_n?=?n_out;
??newnet->input_units?=?alloc_1d_dbl(n_in?+?1);
??newnet->hidden_units?=?alloc_1d_dbl(n_hidden?+?1);
??newnet->output_units?=?alloc_1d_dbl(n_out?+?1);
??newnet->hidden_delta?=?alloc_1d_dbl(n_hidden?+?1);
??newnet->output_delta?=?alloc_1d_dbl(n_out?+?1);
??newnet->target?=?alloc_1d_dbl(n_out?+?1);
??newnet->input_weights?=?alloc_2d_dbl(n_in?+?1?n_hidden?+?1);
??newnet->hidden_weights?=?alloc_2d_dbl(n_hidden?+?1?n_out?+?1);
??newnet->input_prev_weights?=?alloc_2d_dbl(n_in?+?1?n_hidden?+?1);
??newnet->hidden_prev_weights?=?alloc_2d_dbl(n_hidden?+?1?n_out?+?1);
??return?(newnet);
}
void?bpnn_free(BPNN?*net)
{
??int?n1
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????152??2004-11-14?15:37??demo.bat
?????目錄???????????0??2006-11-07?01:52??faceimages\
?????目錄???????????0??2006-11-07?01:52??faceimages\faces\
?????文件?????????131??1995-10-21?01:54??faceimages\faces\.anonr
?????目錄???????????0??2006-11-07?01:52??faceimages\faces\an2i\
?????文件???????42648??1995-10-07?03:41??faceimages\faces\an2i\an2i_left_angry_open.pgm
?????文件????????3853??1995-10-19?12:07??faceimages\faces\an2i\an2i_left_angry_open_2.pgm
?????文件?????????973??1995-10-08?05:54??faceimages\faces\an2i\an2i_left_angry_open_4.pgm
?????文件???????42480??1995-10-07?03:44??faceimages\faces\an2i\an2i_left_angry_sunglasses.pgm
?????文件????????3853??1995-10-19?12:07??faceimages\faces\an2i\an2i_left_angry_sunglasses_2.pgm
?????文件?????????973??1995-10-08?05:54??faceimages\faces\an2i\an2i_left_angry_sunglasses_4.pgm
?????文件???????42802??1995-10-07?03:39??faceimages\faces\an2i\an2i_left_happy_open.pgm
?????文件????????3853??1995-10-19?12:07??faceimages\faces\an2i\an2i_left_happy_open_2.pgm
?????文件?????????973??1995-10-08?05:54??faceimages\faces\an2i\an2i_left_happy_open_4.pgm
?????文件???????42944??1995-10-07?03:42??faceimages\faces\an2i\an2i_left_happy_sunglasses.pgm
?????文件????????3853??1995-10-19?12:07??faceimages\faces\an2i\an2i_left_happy_sunglasses_2.pgm
?????文件?????????973??1995-10-08?05:54??faceimages\faces\an2i\an2i_left_happy_sunglasses_4.pgm
?????文件???????43292??1995-10-07?03:38??faceimages\faces\an2i\an2i_left_neutral_open.pgm
?????文件????????3853??1995-10-19?12:07??faceimages\faces\an2i\an2i_left_neutral_open_2.pgm
?????文件?????????973??1995-10-08?05:54??faceimages\faces\an2i\an2i_left_neutral_open_4.pgm
?????文件???????42974??1995-10-07?03:42??faceimages\faces\an2i\an2i_left_neutral_sunglasses.pgm
?????文件????????3853??1995-10-19?12:07??faceimages\faces\an2i\an2i_left_neutral_sunglasses_2.pgm
?????文件?????????973??1995-10-08?05:54??faceimages\faces\an2i\an2i_left_neutral_sunglasses_4.pgm
?????文件???????42693??1995-10-07?03:40??faceimages\faces\an2i\an2i_left_sad_open.pgm
?????文件????????3853??1995-10-19?12:07??faceimages\faces\an2i\an2i_left_sad_open_2.pgm
?????文件?????????973??1995-10-08?05:54??faceimages\faces\an2i\an2i_left_sad_open_4.pgm
?????文件???????42967??1995-10-07?03:43??faceimages\faces\an2i\an2i_left_sad_sunglasses.pgm
?????文件????????3853??1995-10-19?12:07??faceimages\faces\an2i\an2i_left_sad_sunglasses_2.pgm
?????文件?????????973??1995-10-08?05:54??faceimages\faces\an2i\an2i_left_sad_sunglasses_4.pgm
?????文件???????42802??1995-10-07?03:41??faceimages\faces\an2i\an2i_right_angry_open.pgm
?????文件????????3853??1995-10-19?12:07??faceimages\faces\an2i\an2i_right_angry_open_2.pgm
............此處省略1935個文件信息
評論
共有 條評論