2017-09-11 4 views
1

テンソルフローの新しい演算子を定義するための公式ガイドに従っています。 https://www.tensorflow.org/extend/adding_an_opC++で新しいTensorflow演算子の定義を理解する

#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 :: InferenceContext * c)とその構文。また、私はInferenceContextに困惑しています。それは、配列の要素を1つずつ連続して渡す方法であると推測しています。どこでも明示的な定義を見つけることができませんでした。場所を教えてもらえますか? このコードがフードの下で何をしているのかを深く理解したいのですが、

答えて

0

シェイプの推論関数ここに? https://www.tensorflow.org/extend/adding_an_op#shape_functions_in_c

これは、ShapeInferenceContextクラスと、独自の関数を記述するための仕組みについてかなり議論しています。それがあなたが興味を持っているものをカバーしていないなら、あなたは詳細を与えることができますか?

関連する問題