我正在使用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.Tensor
从PyObject*
检索py11::object
指针,但是我不知道如何将其转换为指向C ++ Tensor对象的指针。