小编psa*_*awa的帖子

gcc连接器的奇异数值行为

我有一个简单的C代码问题如下:

#include <math.h>
#include <stdio.h>

int main () {
    printf ("%f\n", exp(1));
}
Run Code Online (Sandbox Code Playgroud)

1用小于的数字替换会710导致编译成功并产生预期的效果,但对于高于此数字的数字,我会收到链接器错误:

/tmp/ccqVnsno.o: In function `main': 
test.c:(.text+0x1c): undefined reference to `exp'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我使用以下bash脚本测试了1000以下的数字:

for i in {0..1000}; do
    sed -i -r "s:[0-9]+:${i}:" test.c
    gcc -o test test.c
    ./test
done
Run Code Online (Sandbox Code Playgroud)

无论上限如何,将printf语句放在带有exp索引变量的for循环中都会导致相同的链接错误.

这里发生了什么?编译器是否将710识别为某种限制long double?那么为什么链接器会捕获错误?抱歉轻信,我是C的新手.

c linker gcc

15
推荐指数
1
解决办法
130
查看次数

如何在 Keras RNN 中实时实现前向传播?

我正在尝试在实时运行的应用程序中运行在 Keras 中训练的 RNN。这里循环网络(LSTM)中的“时间”是接收数据时的实际时刻。

我想以在线方式获取 RNN 的输出。对于非循环模型,我只是将输入塑造成形状inputDatum=1,input_shapeModel.predict在其上运行。我不确定这是否是在 Keras 中为应用程序使用前向传递的预期方法,但它对我有用。

但对于循环模块,Model.predict期望整个输入作为输入,包括时间维度。所以它不起作用...

有没有办法在 Keras 中执行此操作,或者我是否需要转到 Tensorflow 并在那里实现操作?

keras tensorflow recurrent-neural-network

5
推荐指数
1
解决办法
1516
查看次数

标签 统计

c ×1

gcc ×1

keras ×1

linker ×1

recurrent-neural-network ×1

tensorflow ×1