Nguyên âmMức ẩn gồm

Một phần của tài liệu Mạng nơ ron (Trang 81 - 83)

Mức ẩn gồm 150

neuron tang hyperbole (Để đơn giản các kết nối trễ và phản hồi

không đ−ợc thể hiện trên hình)

. . . . . . . . . . . . . . .

Hình 7.2 Kiến trúc khái quát của mạng neuron thử nghiệm

/* Đọc file chứa mạng neuron từ đĩa */

inList = CutDirExt(inList1, NumFiles);

NetName = MakeName(Dir, NetName, "net"); ann = LoadNet(NetName);

/* Chuẩn hoá đầu vμo */

NormConnector("CEP", ann, inList, NumFiles, 1.0);

NormGroup("diff1", ann, inList, NumFiles, 1.0); NormGroup("diff2", ann, inList, NumFiles, 1.0);

/* Truyền giá trị cho tham biến xác lập chế độ tích luỹ */

ResetBackPropVar();

SetBackPropVar('m', 0, 0, 0.7, 0.0, NULL, NULL, NULL); SetBackPropVar('g', 0, 0, 1e-5, 0.0, NULL, NULL, NULL); SetBackPropVar('i', Numiters, 0, 0.0, 0.0, NULL, NULL, NULL);

SetBackPropVar('F', 20, 30, 0.0, 0.0, NULL, NULL, NULL); SetBackPropVar('e', 0, 0, Threshold, 0.0, NULL, NULL, NULL);

SetBackPropVar('n', 0, 0, 0.0, 0.0, NetName, NULL, NULL); SetBackPropVar('x', NumFiles, 0, 0.0, 0.0, NULL, NULL, inList);

/* Thực hiện tích luỹ */

BackPropTrain(ann);

FreeNet(ann); }

void MyFilterBank(char** WavsList1, int NumWavs, char*

ParamsDir, char* WavsDir) {

char** WavsList;

WavsList = CutDirExt(WavsList1, NumWavs);

/* Truyền giá trị cho tham biến xác lập chế độ x/lý*/

ResetFibVar();

SetFibVar('d' ,0, 0, 0, ParamsDir, NULL); SetFibVar('x' ,0, 0, 0, "dat", NULL); SetFibVar('p' ,0, 0, 0, WavsDir, NULL); SetFibVar('q' ,0, 0, 0, "wav", NULL);

SetFibVar('i', NumWavs, 0, 0, NULL, WavsList); SetFibVar('n', 24, 0, 0, NULL, NULL);

SetFibVar('c', 12, 0, 0, NULL, NULL); SetFibVar('e', 0, 0, 0, NULL, NULL);

/* Thực hiện xử lý filter bank */

FibAct();

FREE2D(WavsList, NumWavs)

}

void MyRunNet(char* NetName, char* Dir,

char** ParamsList1, int NumParams) {

char** ParamsList;

/* Đọc file chứa mạng neuron từ đĩa */

ParamsList = CutDirExt(ParamsList1, NumParams); NetName = MakeName(Dir, NetName, "net");

LoadNet(NetName);

/* Truyền giá trị cho tham biến */

ResetEvaluationVar();

SetEvaluationVar('t', 0, NetName, NULL);

SetEvaluationVar('i', NumParams, NULL, ParamsList);

/* Thực hiện đánh giá tính năng cho mạng neuron */

Evaluation();

FREE2D(ParamsList, NumParams)

}

7.2.2 Một vài modul quan trọng khác 1. Modul BackPropTrain 1. Modul BackPropTrain

Đây là modul công cụ thực hiện một quá trình tích luỹ back-propagation hoàn chỉnh. Có rất nhiều chế độ thi hành một quá trình nh− vậy phụ thuộc vào các thuộc tính nh−: số l−ợng các Epoch; tham số tốc độ học, hằng số moment; cập nhật các trọng số theo từng Unit, từng file tham số hay sau mỗi Epoch; ... Điều này yêu cầu modul phải có rất nhiều biến trung gian, và vì vậy nó sẽ cung cấp hai thủ tục sau:

/* Thủ tục khởi đầu lại các biến tr−ớc khi truyền giá trị*/

void ResetBackPropVar (void);

/* Thủ tục truyền giá trị các thuộc tính xác định chế độ

thi hμnh. ở đó sign lμ ký tự xác định loại thuộc tính cần thay

đổi vμ các tham biến tiếp theo lμ các giá trị cần gán */

void BackPropVar(char sign, int num1, int num2, float num3, float num4, char* str1,

char* str2, char** List);

/* Thủ tục thi hμnh sau khi đã xác định chế độ*/

void BackPropTrain(void);

Một phần của tài liệu Mạng nơ ron (Trang 81 - 83)

Tải bản đầy đủ (PDF)

(97 trang)