gpt4 book ai didi

c - -1.#Q0随机出现

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:09 24 4
gpt4 key购买 nike

我有以下代码:

float w[n][n] = {
{0, 0, 0.5, -1, 0, 0, 0},
{0, 0, 1.5, -2, 0, 0, 0},
{0, 0, 0, 0, 1, -1, 0},
{0, 0, 0, 0, 3, -4, 0},
{0, 0, 0, 0, 0, 0, 1},
{0, 0, 0, 0, 0, 0, -3}
};
float x[ne] = {2, -1};
float d = 1;
float alpha = 0.1;
float in[n];
float delta[n];
float a[n];
float sum;

for(j = ne; j <= n; j++) {
for(i = 0; i <= n; i++) {
in[j] += w[i][j] * a[i];
}
a[j] = g(in[j]);
}

for(i = 0; i < n; i++) {
printf("a[%d] = %.3f\n", i+1, a[i]);
}

delta[n-1] = d - a[n-1];

for(i = n-2; i >= ne; i--) {
for(j = 0; j <= n; j++) {
sum += w[i][j] * delta[j];
}
delta[i] = g(in[i]) * (1 - g(in[i])) * sum;
printf("delta[%d] = %.3f\n", i+1, delta[i]);
sum = 0;
}

printf("\n\n");

for(i = 0; i < n; i++) {
for(j = 0; j < n; j++) {
if (w[i][j] != 0) {
w[i][j] = w[i][j] + alpha * a[i] * delta[j];
printf("w[%d][%d] = %.3f\n", i+1, j+1, w[i][j]);
}
}
}

我不断得到这个输出的一些变化:

a[1] = 2.000
a[2] = -1.000
a[3] = 0.378
a[4] = 0.500
a[5] = 0.867
a[6] = 0.085
a[7] = 0.649

delta[6] = -1.#QO
delta[5] = -1.#QO
delta[4] = -1.#QO
delta[3] = -1.#QO

w[1][3] = -1.#QO
w[1][4] = -1.#QO
w[2][3] = -1.#QO
w[2][4] = -1.#QO
w[3][5] = -1.#QO
w[3][6] = -1.#QO
w[4][5] = -1.#QO
w[4][6] = -1.#QO
w[5][7] = 1.030
w[6][7] = -2.997

每次我编译它都会出现在不同的地方,知道它是第一次给我正确的答案,但我不确定哪里出了问题?

最佳答案

该代码不完整。为什么你省略了所有变量的声明?因为它们“不重要?”

请注意,这些声明很重要

我不知道,但我预测 d 没有设置为 0 并且从堆栈中获取 0xFFFFFFFF。这不是 float 。计算中的 NaN 值始终会产生 NaN 结果。

关于c - -1.#Q0随机出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44426635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com