了解C 中新的TensorFlow操作员的定义



我正在尝试遵循官方指南,以定义TensorFlow中的新操作员。https://www.tensorflow.org/extend/adding_an_op

#include "tensorflow/core/framework/op.h"
#include "tensorflow/core/framework/shape_inference.h"
using namespace tensorflow;
REGISTER_OP("ZeroOut")
    .Input("to_zero: int32")
    .Output("zeroed: int32")
    .SetShapeFn([](::tensorflow::shape_inference::InferenceContext* c){
      c->set_output(0, c->input(0));
      return Status::OK();
    });

但是,我找不到对此代码的逐线说明,尤其是我不明白.setShapefn的作用是什么([](:: Tensorflow :: Shape_inference :: shape_inference :: supleenceContext* c)及其语法也让我感到困惑,我猜这是一种连续地传递任何数组的元素的一种方式。.我在任何地方都找不到明确的定义,也许我在错误的地方看,有人可以帮忙我用解释或参考?我想深刻了解这件代码在引擎盖下的作用。

您是否在此处发现了Shape推理功能的部分?https://www.tensorflow.org/extend/adding_an_op#shape_functions_in_in_c

对ShapeInferenceContext类以及编写您自己的功能的机制进行了很多讨论。如果不涵盖您感兴趣的内容,您可以提供更多详细信息吗?

最新更新