我想知道如何找到在Python中廣泛使用的TensorFlow方法的C++等價物。例如,哪裏可以找到相當於tf.matmul()
?它是否可用?TensorFlow:可用的C++等效的Python函數
我讀main.cc在label_image例子,我注意到,它使用的功能,如Sub()
和Div()
,其單證我不能在C++ API文檔找到。我不知道這些功能來自哪裏。
謝謝。
更新:
這種混亂是非常新TensorFlow r1.0 C++ API的良好的文檔解決。
我想知道如何找到在Python中廣泛使用的TensorFlow方法的C++等價物。例如,哪裏可以找到相當於tf.matmul()
?它是否可用?TensorFlow:可用的C++等效的Python函數
我讀main.cc在label_image例子,我注意到,它使用的功能,如Sub()
和Div()
,其單證我不能在C++ API文檔找到。我不知道這些功能來自哪裏。
謝謝。
更新:
這種混亂是非常新TensorFlow r1.0 C++ API的良好的文檔解決。
更新:答案對於TensorFlow的1.0之前的版本是非常有意義的。 MBA點,通過直接(官方文檔)的TF團隊提供了一些新的解釋,並有周圍的OPS好重構:-)
許多操作的API的Python執行委託給C++實現。
tensorflow/core/ops
下的源代碼包含內核和操作系統。它們是處理通過不同API調用的命令的實際操作。
內核和操作符遵循一種模式。 REGISTER_OP
宏將一個C++函數實現「附加」到一個句柄(一個字符串),該句柄在運行時被其中一個API調用。這類建築都有其優點和缺點---超出範圍在這裏:-)
例如tf.matmul
,代碼可以很容易地在tensorflow/core/ops/math_ops.cc
在repository找到。典型的圖案是這樣的:
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.matmul
是在函數shape_inference::MatMulShape
(以下簡稱「函子」,即C++函數)。包裝器(例如Python API)調用MatMul
句柄來執行代碼。
在新的r1.0版本的文檔中似乎更清楚:https://www.tensorflow.org/api_docs/cc/ – mhaghighat
的確如此!感謝您的鏈接和您的問題更新。我會相應地更新答案。 –