-2

TensorFlow를 오랫동안 공부하고 싶습니다. 그래서 처음에는 소스 코드를 읽고 싶습니다. 예를 들어 :TensorFlow 소스 코드의 call-stacktrace?

one of TF function

나는 함수의 깊은 수준을 찾을 수 없습니다.

함수 Shape은 어디에서 계산됩니까?

답변

1

표시 한 코드 조각은 "Shape"조작을 그래프에 자동으로 생성하는 코드 조각입니다. 인수 _op_def_lib.apply_op()의 문자열 "Shape"은 노드의 작동 유형을 결정합니다. 표준 작업 유형은 TensorFlow 소스 코드의 tensorflow/core/ops/ 디렉토리에있는 C++ 소스 코드에 등록되어 있습니다. 특히, "Shape" 조작은 tensorflow/core/ops/array_ops.cc에 등록됩니다. 이러한 등록은 각 작업의 입력, attrs 및 출력의 유형을 정의하는 데 사용되며 Python 래퍼는 이러한 등록에서 생성됩니다.

처음

당신은 ( tf.Session.run()에 대한 호출에서 즉) 그 노드를 포함하는 서브 그래프, TensorFlow 특정 장치의 동작을 구현하는 적절한 커널를 찾아 볼 것을 실행합니다. 예를 들어, CPU와 GPU 구현을위한 별도의 커널이 종종 있습니다. 표준 커널 구현은 TensorFlow 소스 코드의 tensorflow/core/kernels/ 디렉토리에 C++ 소스 코드로 등록됩니다. 특히 "Shape" 커널은 tensorflow/core/kernels/shape_ops.cc에 등록됩니다. 커널 등록은 커널을 구현하는 클래스의 이름을 지정합니다. 커널은 tensorflow::OpKernel의 하위 클래스 여야하며,이 경우 tensorflow::ShapeOp 클래스입니다. 하위 그래프가 처음 실행될 때 생성자가 호출되고 작업이 실행될 때마다 Compute() 메서드가 호출됩니다.

+0

감사합니다. 제 로컬 컴퓨터에서이 C++ 파일을 어디서 찾을 수 있습니까? 다시 한번 감사드립니다. 전체 파일 시스템을 검색했지만 찾을 수 없습니다. 어떻게 C++ 소스 코드를 효율적으로 읽을 수 있습니까? –

+0

이것은 TensorFlow 설치를 구성한 방법에 따라 다릅니다. 소스에서 설치 한 경우 [TensorFlow git repository] (https://github.com/tensorflow/tensorflow)를 복제 한 위치에 있습니다. PIP 패키지에서 설치 한 경우 원본 파일이 로컬 컴퓨터에 없을 것입니다. – mrry