【发布时间】:2019-04-30 08:57:41
【问题描述】:
在TensorFlow's documentation,可以找到以下文字:
// Not recommended
MatMul m(scope, a, b);
// Recommended
auto m = MatMul(scope, a, b);
我认为使用“推荐”样式没有明显的好处。第一个版本至少更短。此外,“推荐”版本可能包含更多与不必要的分配操作相关的操作。
我已阅读该文档页面不少于六次,但仍然无法理解其推理背后的基本原理。
这个建议只是风格问题还是第二个版本有一些好处?
【问题讨论】:
-
我认为这个想法是为了统一而以相同的方式对待函数和类。从概念上讲,将
MatMul视为一个函数而不是一个类可能更有意义,因此它更像是“m是a和b相乘的结果”,而不是“m是一个乘法”以a和b作为参数的操作”。它允许您编写执行一系列操作的实际函数并以相同的方式使用它们。我认为它通常更接近您在 Python 中获得的“API 感觉”。 -
另一个原因(尽管@StoryTellers 链接更合理)可能是文本对齐。如果您有不同名称长度的不同类型,如果所有变量都定义为
auto xyz = ...并因此以相同数量的缩进开始(类似于尾随返回类型),您的代码可能更易于阅读。
标签: c++ tensorflow constructor