TensorFlow 中的 tf.nn.sigmoid 实现

Geo*_*rge 2 tensorflow tensorflow2.0

您能否指出该tf.nn.sigmoid函数在 TensorFlow (2.0) 中的实际 C++ 实现?仅用于教育目的。

谢谢。

gob*_*s14 6

Tensorflow 源浏览起来可能有点棘手。这是我用来查找实现文件的一些想法。

你可以看到它tf.nn.sigmoid是在 python 中定义的

张量流/python/ops/math_ops.py

如果您查看此函数定义,您可以看到它返回 中定义的 sigmoid 函数gen_math_ops。我花了一段时间才弄清楚,但如果你去寻找,gen_math_opstensorflow/python/ops将找不到它。任何与gen_都是名称tensorflow给出的由C++代码注册的操作。

我们在内核实现中真正想要的是什么。这些可以在 中找到tensorflow/core/kernels。快速 ctrl+f"sigmoid"指向我们cwise_op_sigmoid.cc。它不包含实现,但向我们指出了一个头文件cwise_ops_common.h。这也不包含实现,但向我们指出了cwise_ops.h. 在这个文件中按 ctrl+f ,我们可以在第877"sigmoid"行找到“实现” 。您可以看到这是一个包装 Eigen 操作的函子。 是该操作的文档。如果您好奇该操作是如何实现的,我会下载源代码。你可以在这里找到它。Eigen::internal::scalar_logistic_op

  • 为了完整起见,是这样吗?https://github.com/eigenteam/eigen-git-mirror/blob/b2ee7948a59c6cd5a2843786543f67b74a9928b7/Eigen/src/Core/functors/UnaryFunctors.h#L894 (2认同)