2017-09-11 7 views
1

tensorflow에서 새 연산자를 정의하는 공식 가이드를 따르려고합니다. 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에 당혹 스럽네요, 나는 그것이 배열 배열 요소를 하나씩 전달할 수있는 방법이라고 추측하고 있습니다. 나는 어디에서나 명시 적 정의를 찾을 수 없었습니다. 잘못 입력했을 수도 있습니다. 장소, 누군가가 설명이나 참조로 나를 도울 수 있습니까? 후드 아래에서이 코드의 내용을 깊이 이해하고 싶습니다.

답변

0

도형 추론 기능 여기있어? https://www.tensorflow.org/extend/adding_an_op#shape_functions_in_c

ShapeInferenceContext 클래스와 자신의 함수를 작성하는 메커니즘에 대해 많은 논의가있었습니다. 그것이 당신이 관심있는 것을 다루지 않는다면, 당신은 더 자세한 정보를 줄 수 있습니까?