为什么TensorFlow推荐"functional style for constructing operations"?
Why does TensorFlow recommends the "functional style for constructing operations"?
在Tensorflow的文档中,可以找到以下文本:
// Not recommended
MatMul m(scope, a, b);
// Recommended
auto m = MatMul(scope, a, b);
我看到使用"推荐"样式没有明显的好处。第一个版本至少很短。另外,"推荐"版本可能包括与不必要的作业操作有关的更多操作。
我已经阅读了该文档页面不少于六次,但仍然无法获得其推理背后的理由。
此建议只是时尚问题还是第二版本可能有一些好处?
"推荐"版本还可能包括与不必要的作业操作有关的更多操作。
没有作业。这是初始化。并且原则上可能存在的任何额外对象都完全在任何值得使用的编译器中。
您所引用的建议与Herb Sutter的"几乎总是自动"建议内联。最有利于这种风格的最有力的观点(在全面披露,我不遵循的情况下(是,这使得不可能留下可变的非直接化。
auto foo; // ill-formed.
int foo; // indeterminate value
auto foo = int(); // a zero integer
授予的,一个良好的静态分析工具也可以警告,但这仍然是一个非常强的观点,不需要编译器或外部工具的其他分析。
除此之外,风格上的论点是,它还使您的代码与您使用auto
进行理智的情况一致,例如
auto it = myVec.begin();
但所有计数。它最终将是一种风格的选择,无论选择哪种样式,这两种样式都存在。
相关文章:
- MatMul op 在 tensorflow 中是如何工作的?
- 添加 OP 张量流调试
- cv2有什么区别.StereoSGBM_create() 和 cv2.StereoBM_create() 函数用于 Op
- 如何从C++代码运行自定义 GPU tensorflow::op?
- std::p riority_queue::p op什么时候会抛出异常
- 为什么捕获std :: Isringstream的RVALUE的OP会失败
- 在Vulkan中重新固定图形管道,保证了No-Op
- [expr.unary.op]/9 似乎暗示"运算符!()' 不能应用于下面的类型 A.但编译器不同意这一点
- 为什么我不能将 op 结果乘以常量特征张量数组
- 不兼容的操作原则到三元op
- 访问自定义OP的输入值时的segmenation故障
- 编译CUDA的自定义TensorFlow OP
- QFILE INIT/分配OP问题当对象是类成员时
- 创建 "no-op" DLL 版本?
- 在Python中编写和注册自定义TensorFlow OP
- 如何修复张量流中的"Non-OK-status: Not found: Op type not registered 'NoOp' in binary running"
- 为什么TensorFlow推荐"functional style for constructing operations"?
- 如何在 Tensorflow C++ 中定义变量的自定义有状态 Op 保存值
- 我有 12 个 CPU,1 个插槽,每个插槽 6 个内核,每个内核 2 个线程 - 这些信息如何对应于 MPI 和 Op
- 可以在CUDA速度计算中实现TensorFlow自定义OP梯度