【问题标题】:Convert data values from Python to C将数据值从 Python 转换为 C
【发布时间】:2018-06-29 08:45:00
【问题描述】:

对于这个项目,我正在使用 libsvm。

我有一个能够输出特征向量列表的 python 文件,我有一个 C 可执行文件,它采用 2 个 csv 文件、特征向量列表和 svm 模型作为参数,并以以下形式输出预测一个csv文件。

现在,我想更改 C 文件,使其将 python 文件的列表输出作为输入参数进行预测。这是因为我必须实时运行 python 代码和 C。因此,如果我必须用 python 写入 csv 文件并用 C 读取文件,延迟将是一个问题。

我尝试过搜索诸如 cython、子进程模块和 argparse 之类的东西。但是,似乎这些用于在 Python 中执行 C 和 C 中的 Python 函数。有人可以帮助了解如何将数据从 python 传输到 C 吗?谢谢。

【问题讨论】:

  • 研究创建一个 python 扩展/模块。

标签: python svm libsvm embedding


【解决方案1】:

这取决于您接受作为输入的延迟量。 我不熟悉libsvm,所以我承认您可以在我的解决方案中读取您的特征向量:

第一个解决方案(更简单但更慢)是制作一个小的 Python 到 C 库,如下所示:

#/usr/bin/python
def print_vector(vec):
  first =  true;
  print("[")
  for i in vec: 
    if first: 
      first = false
    else:
      print(',')
    print(i)
  print("]")

并使用 <string.h> 库和 atoi 从 C 中的标准输入解析它。

然后您将执行以下命令:

./my_python_program | ./my_c_program

第二个解决方案(更快但更难)是实现python程序和C之间的管道连接。甚至是TCP套接字连接。

例如,如果您在 Linux 下,可以查看Linux Documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 2017-05-30
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多