tf.nn.sigmoid 在 TensorFlow 中实现

tf.nn.sigmoid implementation in TensorFlow

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

谢谢。

Tensorflow 源代码导航起来有点棘手。这是我用来查找实现文件的一些想法。

可以看到这里python中定义了tf.nn.sigmoid

tensorflow/python/ops/math_ops.py.

如果您查看此函数定义,您会发现它 returns 是 gen_math_ops 中定义的 sigmoid 函数。我花了一段时间才弄明白,但如果你在 tensorflow/python/ops 中搜索 gen_math_ops,你将找不到它。前面带有 gen_ 的任何内容都是名称 tensorflow 给出由 C++ 代码注册的操作。

我们在内核实现中真正想要的。这些可以在 tensorflow/core/kernels 中找到。 "sigmoid" 的快速 ctrl+f 将我们指向 cwise_op_sigmoid.cc。这不包含实现,但将我们指向一个头文件 cwise_ops_common.h。这也不包含实现,但将我们指向 cwise_ops.h。在此文件中为 "sigmoid" 按 ctrl+f,我们在 877. You can see this is a functor that wraps the Eigen operation Eigen::internal::scalar_logistic_op. Here are the docs for that op. If you're curious how that op is implemented, I'd download the source. You can find it here.

行找到“实现”