【问题标题】:What are the shorthand operators for TensorFlow?TensorFlow 的速记运算符有哪些?
【发布时间】:2018-05-21 20:31:09
【问题描述】:

我使用 TensorFlow 的时间很少,但它看起来很有希望。我正在学习 DeepLearning.ai 的 Coursera 第二门课程(改进深度神经网络:超参数调整、正则化和优化)。

我注意到有一个等价于(ish)的简单操作,例如:

  • tf.matmul(a,b) ≈ a@b
  • tf.add(a,b) ≈ a + b

我更喜欢速记操作,因为它们可能使代码更易于阅读。所以...

速记运算符都有哪些?

有什么地方可以找到所有可能的操作吗?

另外,我希望听到一些关于使用这些速记运算符是否是一种好习惯的反馈...

【问题讨论】:

    标签: python tensorflow operators


    【解决方案1】:

    这不是 tensorflow 特有的,而是 python 语言的一种功能。通过定义一些特殊的成员函数,您可以使用这些“快捷方式”——例如,如果您实现了__add__ 成员函数,那么您可以使用+ 来调用该函数。

    您可以找到有关“数字”运算符的here 和有关“容器”运算符(例如[])的here 的更多信息。同一页面上还有更多内容。

    这是一个 python 功能,这意味着它们可能取决于您使用的 python 版本。我更特别想到 @,它出现在 python 3.5 中,因此不能在 python 2.7 AFAIK 中使用。

    这些快捷方式使代码更易于阅读,到目前为止我还没有看到任何诱导惩罚,所以你可以随意使用。

    【讨论】:

    • 我刚刚发现在 TensorFlow 中使用完整的函数语句有一个很好的优势(即 tf.matmul(a,b) vs a@b),它是你可以命名操作(显然你可以命名TF中的所有内容)。嗯,这是什么意思?你问... 这意味着当使用像TensorBoard 这样的工具时,你可以很容易地通过它的名字找出那个操作是什么。可能并非所有操作都应该命名,但您可以这样做,以便更轻松地调试图形。
    • @loco.loop 是的——虽然我个人认为范围是我组织图表的主要工具。我命名范围和变量,很少有操作。但这当然是个人观点。
    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 2012-02-11
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多