gpt4 book ai didi

c++ - 检查失败 : GetOpGradFactory()->insert({op, func}).second MapAccumulate 的重复梯度

转载 作者:行者123 更新时间:2023-11-30 04:54:42 27 4
gpt4 key购买 nike

注意:我也在这里发布了这个问题 https://openmodelica.org/forum/default-topic/2570-linux-mint,-python-3-6-omc-server-is-down-please-start-it我希望也能接触到更多拥有 tensorflow 经验的群体。


我想在 Modelica 模型 中使用 Tensorflow C++ API

为此,我用 C++ 创建了一个封装 Tensorflow 细节的类。此外,同一文件包含 3 个函数(调用构造函数、析构函数和一个使用我的类的现有实例的函数。这些函数在相应的头文件中声明为“extern”(仅当由 C++ 编译器读取时,我是使用 __cplusplus 来区分)。

然后我使用 g++ 将所述文件(类和 3 个函数)编译成 .so(我确实使用了 -fPIC 和 -shared)。在/usr/lib 中,我创建了一个指向所述共享对象库的符号链接(symbolic link)。

(为了完整起见,我应该提到我在使用“LibraryDirectory”和“IncludeDirectory”注释时遇到了麻烦。这就是为什么我使用 -L 和 - 创建了指向要传递给 g++/gcc 的所有目录内容的符号链接(symbolic link)的原因我(对于我的测试程序)直接进入 Model/Resources/Library 和 Model/Resources/Include 目录。因为没有更多的编译错误,我认为这没问题。)

现在奇怪的是:

我可以在用 gcc 编译的测试程序中使用这 3 个函数。我将它与所有 Tensorflow 库(以及上面的 libm、libstdc++ 和我的 .so)链接起来,它按预期工作。但是,当我尝试在 a) Modelica 类(构造函数和析构函数)和 b) 使用“外部”函数调用的函数中使用这 3 个函数时,它可以正常编译,但会发生运行时错误:


标准输出 | OM编辑信息 |

/tmp/OpenModelica_fred/OMEdit/TestCpp -port=44382 -logFormat=xmltcp -override=startTime=0,stopTime=1,stepSize=0.002,tolerance=1e-6,solver=dassl,outputFormat= mat,variableFilter=.* -r=TestCpp_res.mat -w -lv=LOG_STATS

标准输出 |错误 |

2018-11-22 10:47:00.153977: F tensorflow/core/framework/function.cc:1440] 检查失败:GetOpGradFactory()->insert({op, func}).second MapAccumulate< 的重复梯度br/>

标准输出 |错误 |

进程崩溃

标准输出 |错误 |

进程崩溃
模拟过程失败。以代码 6 退出。


这怎么可能?我无法使用导致相同错误的 3 个函数在我的测试程序中执行任何操作。 OMC 生成的可执行文件可以对我不在我的测试程序中的它们做什么?

最佳答案

我找到了一个解决方案,将/usr/bin 中的符号链接(symbolic link)“clang”指向“gcc”。

有关说明,请查看 https://openmodelica.org/forum/default-topic/2570-linux-mint,-python-3-6-omc-server-is-down-please-start-it .

关于c++ - 检查失败 : GetOpGradFactory()->insert({op, func}).second MapAccumulate 的重复梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53443553/

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