如何使用pybind11将python tf.Tensor转换为C ++ Tensor

时间:2019-05-08 12:50:13

标签: python c++ tensorflow swig pybind11

我正在使用pybind11在C ++中开发Python库。该库旨在与TensorFlow之类的深度学习软件包一起使用,因此它公开的某些功能将TensorFlow对象作为参数,尤其是# !/usr/bin/env python import sys import pymysql db = pymysql.connect( host="localhost", user="xxx", passwd="yyy", database="zzz") print(db) mycursor = db.cursor(pymysql.cursors.DictCursor) mycursor.execute("select * from table;") myresult = mycursor.fetchall() for x in myresult: print("row ", mycursor.rowcount, "id ", x["id"], " date ", x["date_Time"]) 实例。在C ++级别上,这些函数是使用以下原型定义的:

tf.Tensor

我正在寻找一种方法,以使C ++ void f(const py11::object& theTensor) { ... } 被传递的tensorflow::Tensor包装。

我对TensorFlow的理解是,它使用SWIG创建C ++接口的Python包装器。但是,我找不到py11::object包装器的定义位置,而且我不熟悉SWIG将C ++类公开为Python类的方式。

我应该能够使用tf.TensorPyObject*检索py11::object指针,但是我不知道如何将其转换为指向C ++ Tensor对象的指针。

0 个答案:

没有答案