【发布时间】:2021-12-29 11:23:36
【问题描述】:
目前我正在为一个专有软件编写扩展程序。不幸的是,日志并不完全可用,因此正在进行中。扩展使用 Microsoft Visual Studio 2019 编译为 DLL,此 DLL 依赖于 Tensorflow 2.6 DLL。该扩展基本上使用
加载保存的模型LoadSavedModel(session_options, run_options, m_modelDir, { tensorflow::kSavedModelTagServe }, &model_bundle_lite);
并使用
对图像进行推理model_bundle_lite.GetSession()->Run(inputs_, output_names, {}, &predictions);
Tensorflow DLL 是根据说明使用 bazel 构建的。
如果我使用发布配置编译我的扩展,目前功能上似乎没有问题。我们想检查一些方面,使用调试配置编译我们的扩展并利用原始的 Tensorflow.dll。什么都没有改变,模型是一样的,图像是一样的。但扩展在LoadSavedModel(session_options, run_options, m_modelDir, { tensorflow::kSavedModelTagServe }, &model_bundle_lite); 处崩溃
标准catch 语句未捕获这些错误。我无法调试模型加载后的代码。
这种行为的原因是什么?我只想检查我们代码的功能,我不想自己调试 TF 函数。
【问题讨论】:
-
您是否尝试过为此使用结构化异常处理?
-
我试过这个。但它似乎不起作用,至少直接不起作用。 “不能在需要对象展开的函数中使用 __try”。对代码进行一点重组并将其放在单独的函数中并没有帮助。正在检查其他选项...
标签: c++ tensorflow debugging dll