From 7f50494b19b023c0af493f4327839335ce158715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E4=B8=96=E6=B3=A2?= <2783626707@qq.com> Date: Sat, 18 Nov 2023 09:58:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A5=E9=AA=A44,5=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ main.c | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 0c33963..1df3dbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ *.*~ *.out *.exe +*.txt +tags diff --git a/main.c b/main.c index c6a7928..a12535d 100644 --- a/main.c +++ b/main.c @@ -175,15 +175,15 @@ void init(){ /*为隐藏层节点 i 分配了一个 double 类型的数组,用于存储该节点向下一层节点传播的权重。 使用malloc 函数在堆内存中分配足够的空间,以存储 OUTNODE 个 double 类型的权重值。 */ - hideLayer[i].weight = + hideLayer[i].weight = (double *)malloc(sizeof(double) * OUTNODE); /*为隐藏层节点 i 分配了一个用于存储权重修正值的数组。这个数组将在神经网络的训练过程中用于存储权重的更新值。 使用malloc 函数在堆内存中分配足够的空间,以存储 OUTNODE 个 double 类型的权重值。 */ - hideLayer[i].weight_delta = + hideLayer[i].weight_delta = (double *)malloc(sizeof(double) * OUTNODE); /*为隐藏层节点 i 初始化了一个随机的偏置值。 这个值通常是一个在 -1.0 到 1.0 之间的随机数,用于调整该节点的激活函数的阈值。 */ - hideLayer[i].bias = + hideLayer[i].bias = rand() % 2 - 1; /*初始化了隐藏层节点 i 的偏置值修正值,初始值为0.0。*/ hideLayer[i].bias_delta = 0.0; } @@ -263,15 +263,15 @@ int main() { double sum = 0.0; for (int hideLayer_Pos = 0; hideLayer_Pos < HIDENODE; ++hideLayer_Pos) { /*计算每一个隐藏层节点的value和权值的乘积,相加得到sum - */ + sum += hideLayer[hideLayer_Pos].value * hideLayer[hideLayer_Pos].weight[outLayer_Pos]; } /*更新sum,使sum减去偏置值; - */ + sum -= outLayer[outLayer_Pos].bias; /*利用sigmod函数对得到的sum进行激活,把激活后的结果赋值给对应的输出层节点value(outLayer[outLayer_Pos].value)。 - */ + outLayer[outLayer_Pos].value = sigmoid(sum); }