TensorFlow:可用C++;Python函数的等价物 我想知道如何在Python中广泛使用的TysFooRoad方法找到C++等价物。例如,在哪里可以找到tf.matmul()的等价物?有空吗 我在例子中读到,我注意到它使用了诸如“代码>子”(和()( >的函数,这些文件在C++ API文档中找不到。我想知道这些函数是从哪里来的

TensorFlow:可用C++;Python函数的等价物 我想知道如何在Python中广泛使用的TysFooRoad方法找到C++等价物。例如,在哪里可以找到tf.matmul()的等价物?有空吗 我在例子中读到,我注意到它使用了诸如“代码>子”(和()( >的函数,这些文件在C++ API文档中找不到。我想知道这些函数是从哪里来的,c++,tensorflow,C++,Tensorflow,谢谢 更新: 新版本的良好文档非常好地解决了这一困惑。更新:答案对于TensorFlow的1.0之前版本非常有意义。MBA指出了TF团队直接提供的一些新解释(官方文档),并且围绕ops进行了良好的重构:-) Python API将C++的执行委托给许多操作。 tensorflow/core/ops下的源代码包含内核和ops。它们是处理通过不同API调用的命令的实际操作 内核和操作遵循一种模式。 RetrySyopOP>代码>宏“将”C++函数实现“附加”到一个句柄(字符串),该句柄是由AP

谢谢


更新:

新版本的良好文档非常好地解决了这一困惑。

更新:答案对于TensorFlow的1.0之前版本非常有意义。MBA指出了TF团队直接提供的一些新解释(官方文档),并且围绕ops进行了良好的重构:-)


Python API将C++的执行委托给许多操作。

tensorflow/core/ops
下的源代码包含内核和ops。它们是处理通过不同API调用的命令的实际操作

内核和操作遵循一种模式。<代码> RetrySyopOP>代码>宏“将”C++函数实现“附加”到一个句柄(字符串),该句柄是由API中的一个在运行时调用的。这种架构有其优点和缺点——超出了本文的范围:-)

例如
tf.matmul
,可以在中的
tensorflow/core/ops/math_ops.cc
中轻松找到代码。典型的模式如下所示:

REGISTER_OP("MatMul")
    .Input("a: T")
    .Input("b: T")
    .Output("product: T")
    .Attr("transpose_a: bool = false")
    .Attr("transpose_b: bool = false")
    .Attr("T: {half, float, double, int32, complex64, complex128}")
    .SetShapeFn(shape_inference::MatMulShape)
.Doc("[Edited: some doc string.]");

实际代码运行到<代码> TF.MatuML<代码>在函数<代码> SabeOy推理::MatulStult< /C>(“函子”,即C++函数)。包装器(例如Python API)调用

MatMul
句柄来执行代码。

新r1.0版本的文档中似乎更清楚:的确!谢谢你的链接和你的问题更新。我会相应地更新答案。