问题标签 [c-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 使用tensorflow的c api时如何禁用写入输出的tensorflow中的警告
我使用 TensorFlow 1.13.1 通过使用 C-API 集成它(我的程序是 C++)。张量流向 std 输出写入警告,我想抑制此警告,因为我需要控制下的 std 输出和 std 错误,而不希望 tensorflow 在其上写入。我该如何压制它?
我已经尝试设置环境变量 TF_CPP_MIN_LOG_LEVEL='3' 但这似乎在 TensorFlow 1.13.1 中不起作用(https://github.com/tensorflow/tensorflow/issues/26348)但是链接中的解决方案似乎不是为 C API 工作
希望有人能给我一个提示,告诉我如何解决这个问题。
c++ - 如何防止删除用作共享指针的原始指针?
我为一个 C++ 类实现了一个 C-API,它使用其他对象的共享指针来访问它们。在我的 C-API 中,我当然只能得到原始指针。因此,我将 C-API 中的原始指针“转换”为共享指针,然后将其与我的 C++ 类方法一起使用:
现在我有一个问题,在“方法”的末尾总是调用共享指针析构函数,不幸的是它杀死了我的原始指针指向的对象(我不想要)。那么,如何防止原始指针被杀死?
我已经尝试过 reset() 或 swap() 之类的共享指针函数,但它们都没有让我的原始指针消失......
预期的结果是原始指针 e 在此函数返回后仍指向有效对象。实际上,原始指针指向一个已删除的对象。
imagemagick - Imagemagick c api:如何从 gif 文件中读取 png 图像帧,使用什么调用
因此,我使用 MagickCoalesceImages 调用从 5 个 png 文件创建了 gif 文件并将其存储在磁盘上。如何从 gif 文件中读取这些文件?MagickReadImage 没有帮助
lua - 运行时的 Lua 版本
我正在尝试使用 ifunc 属性为 lua 制作一个胖运行时库(在 C 中),为此我需要在运行时来自 C api 的 lua 版本用于我的解析器函数。
我知道 _VERSION 存储在全局表中的某处,但在知道我的代码执行的版本之前,我不能依赖使用任何 lua 函数
我试图memmem lua状态以寻找没有任何运气的版本,也许有更简单的方法
c# - 来自异步 WPF 窗口的 ExcelDna C API 调用在与 Excel 不同的线程中运行
我有一个异步 WPF 窗口在单独的线程中通过 Excel 运行。我正在尝试使用嵌入在 ExcelDna.Utilities 库中的 C API 调用来访问分布在各种 Excel 工作簿/电子表格中的大量数据。
我尝试的任何调用都会引发错误,我认为它是因为它在不同的线程中运行并且不访问 Excel 运行线程来获取其 Application 对象。
当我尝试通过宏(由功能区按钮调用的 ac# 方法)执行相同操作时,它可以正常工作。这是确保它是线程问题的第一个线索。
我是多线程的新手,但据我所知,我应该从 Dispatcher 对象中调用它。问题是我想不出办法做到这一点。
我的假设是正确的,还是我忽略了另一件事?如果是这样,如何从 Dispatcher 访问“ExcelDna.Utilities.XLApp”?
ExcelDna.Utilities.Workbook[] workbooks = ExcelDna.Utilities.XLApp.Workbooks;
顺便说一句,Office.Interop 在窗口线程中工作,但它不是我的选择。
c++ - 在分叉的进程之间共享的 TensorFlow c++ 会话卡住了
对于 CPP 集成,我们从这里使用 TensorFlow lib https://www.tensorflow.org/install/lang_c
正如我们所见,对于我们的特定模型,第一次 TensorFlow 会话运行耗时 20 秒,而下一次则需要 200 毫秒。我们严格限制了推理的时间,而且我们应该服务多个请求,所以我们决定做下一个技巧:
使用分叉进程为我们的 TensorFlow 提供并行请求服务。初始化 TensorFlow 会话并在主进程中第一次运行空白推理,因此下一次在分叉进程中运行会话。但它卡住了,没有任何错误消息。
有没有办法处理这样的问题。
任何建议都是可以接受的。
c - 通过 C API 访问 tensorflow 2.0 SavedModel 的输入和输出张量
我无法从加载 C_API 的 tensorflow 2.0 SavedModel 运行推理,因为我无法按名称访问输入和输出操作。
我通过 TF_LoadSessionFromSavedModel(...) 成功加载会话:
但是,尝试使用以下方法设置输入和输出张量时出现错误:
我作为参数传递的名称被分配给已保存模型的输入和输出 keras 层,但不在加载的graph
. 运行(按照此处saved_model_cli
的 tf SavedModel 教程)显示具有这些名称的 Tenor 存在于 下,所以我想我需要实例化为一个图(换句话说,根据签名创建一个图),但是我找不到使用 C API 执行此操作的方法。SignatureDef
serving_default
serving_default
请注意,tensorflows 的 C_API测试使用 C++ tensorflow/core/ 功能从元图加载签名定义映射并使用它来查找输入和输出操作名称,但我想避免对 C++ 的依赖。
另请注意,按名称访问操作适用于冻结的 .pb 图形,但此格式已被弃用。
提前感谢您的任何想法和提示!
sqlite - SQLite/AutoHotkey,我对 sqlite3_result_text 返回函数的编码有问题
我正在 AutoHotkey 中使用 SQLite 编写用户定义函数。
当我只使用(返回)英语时,它的效果很好。
但是,如果我使用(返回)任何带有非英语的字符,它会产生损坏的结果。对我来说,损坏的结果有一些规则 - 它的长度与非英语字符完全相关。
有人听说过吗?
我猜这是 SQLite 的“ sqlite3_result_text ”函数的问题。如果是这样,我想正确使用它。
谢谢
[编辑]
我也用“ sqlite3_result_text64 ”测试过。
并且,确认了同样的问题。我不知道造成这种困难的根本原因是什么。非常难的一个。
以下是实际情况截图(与示例代码有点不同,示例代码对于这个问题帖子非常简化)。第一行运行良好(仅限英文)。第二行是相同的内容,但用 CJK 翻译,所以完美地打破了。每行的前 3 个和最后 3 个字符只是为了确保它被正确处理,正如您所看到的那样,它被很好地对待——就像英语一样被很好地对待。
最后,我已经确认万一“只有英语”也有问题。它没有英文,对吧。但是,它显然是“Unicode”..我得到了坏的结果。这真太了不起了..
sqlite - 迭代 sqlite3_next_stmt() 时得到旧结果
我有一个图形界面,可以在自己的选项卡中显示多个 SQLite 查询结果。sqlite3_stmt
现在,当用户关闭其选项卡时,我正在完成一个声明,而不是立即。如果有多个选项卡/结果,第一个给我一个sqlite3_stmt
,但第二个给我两个:sqlite3_stmt
来自第二个选项卡,加上来自第一个选项卡的那个。第三个选项卡会给我 3 个结果,依此类推。
简化的德尔福代码:
如何仅从刚刚触发的 SQL 中返回语句,而不是从较早的 SQL 中返回?
编辑:我刚试过sqlite3_prepare_v3
,它有一个prepFlags
可以传递的参数SQLITE_PREPARE_PERSISTENT
。但这似乎并没有改变任何东西。
python - 如何从 C 程序中返回的 numpy 数组中检索数据?
我有一个用 C 编写的主程序,并且想使用已经用 Python 编写的库,所以我将一些 C-Python API 嵌入到我的 C 程序中。
我已经成功创建了一个代表 numpy 数组的 PyObject,其中包含 C 中的浮点数据,并将其作为参数发送到 Python 脚本中定义的函数,C 程序将通过以下命令调用该函数:
其中pFunc
是要在 Python 脚本中调用的函数的名称,pArgs
是包含要传递给函数的参数的 PyObject,并且pValue
是 PyObject 类型,我相信它将包含返回的结果。
Python 脚本中的函数处理发送的数组,然后将包含浮点数据的二维 numpy 数组返回(nrow, ncol)
给我的主 C 程序。
如何检索返回数组中的数据,并将它们复制到 C 数组中?
https://docs.python.org/3/extending/embedding.html#pure-embedding中有一个示例显示如何使用检索长值
int d = PyLong_AsLong(pValue));
但是,一个 numpy 数组是怎么回事?是否可以使用 PyArray_AsCArray() 之类的东西?