2017-03-20 3 views
2

Tensorflow의 C++ API를 사용하려면 모든 헤더 파일이 필요한지 알고 싶습니다. C API의 경우와 마찬가지로 모든 함수 등이 선언 된 단일 헤더 c_api.h가 있습니다. C++ API에 대한 단일 헤더가 있습니까? 나는 이것을 조사해 보았지만, 무엇이 필요하고 무엇이 아닌지를 이해할 수 없었다.libtensorflow_cc.so를 사용하여 Tensorflow C++ API를 사용할 헤더 목록

는 libtensorflow_cc.so 구축하는 데 사용하고 우리는 또한 tensorflow의 유통이 대부분을 제공하는 tensorflow/CC, tensorflow/코어 헤더와 tensorflow/C의 거대한 목록 (TF의 분포가 나는 TF를 의미하는 bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package을 사용하여 빌드 됨). 이 헤더 목록은 C++ API를 사용하기에 충분한가? 또는 tensorflow/BUILD에서 추가 목표를 만들어야합니까?

나는 또한 https://www.tensorflow.org/api_docs/cc/을 통해 갔지만 필요한 헤더의 정확한 목록을 만들 수는 없습니다.

관련 게시물 중 하나에서, 나는 tensorflow/bazel-genfiles에 필요한 헤더가 있음을 발견했습니다. 이것을 확인하십시오. 사전에

감사합니다, Nishidha

내가 아는 한
+0

필요한 헤더를 선택하거나 모든 헤더를 포함 할 수 있습니까? –

+0

문제는 C++ API를 사용하기 위해 모든 헤더가 필요한지 확인하는 것입니다. 내 접근 방식은 API 문서를 통해 어떤 헤더가 특정 API/클래스/유형을 정의하고 헤더가 포함되는지 여부를 찾는 것입니다. 이 작업을 수행하는 동안 math_ops.h, array_ops.h 등과 같은 헤더 파일 중 일부가 일부 대상의 일부로 생성되어 bazel-genfiles 디렉토리에 도착 함을 발견했습니다. 아무도 내가 어떻게 bazel-genfiles 디렉토리의 내용을 배포판에 포함시킬 수 있는지 알려 주실 수 있습니까? 아니면 BUILD 파일이나 다른 방법으로 수정 하시겠습니까? –

+0

jemalloc 헤더와 같은 일부 외부 종속성의 내용도 발견했습니다. bazel-genfiles에서 생성 된 jemalloc * .h가 배포판에 저장됩니다. 그것들은 또한 cc_library와 genrule 조합을 통해 생성됩니다. array_ops.h, maths_op.h 등과 같은 헤더를 사용하는 cc_ops 라이브러리에도 비슷한 방법이 사용됩니다.하지만 불행히도 이러한 헤더는 tensorflow의 pip 패키지에 포함되지 않습니다. 누구든지 나를 도와 주실 수 있습니까? 미리 감사드립니다. –

답변

0

는 공식 배포 C++ API 패키지가 없습니다. 그러나 TF C++ API를 빌드하고 설치하는 프로젝트는 tensorflow_cc이며 편리한 CMake 대상과 연결할 수 있습니다.

# install *all* files with .h extension 
/tensorflow/**/*.h 
# install all dependencies downloaded by contrib/makefile 
/tensorflow/tensorflow/contrib/makefile/downloads/ 
# install all files from third_party folder (e.g., Eigen/Tensor) 
/tensorflow/third_party/ 

그리고 당신은 CMakeLists.txt:58에 컴파일러가 포함되어야 디렉토리의 목록을 찾을 수 있습니다 : 그것은 아마 필요한 것보다 약간 더 파일을 설치하지만

, 당신은 CMakeLists.txt:130에 설치 헤더의 목록을 찾을 수 있습니다 : C++ API는 tensorflow_cc의 경우, 또한 고유 및 protobuf 헤더 및 라이브러리를 필요로

/tensorflow 
/tensorflow/bazel-genfiles 
/tensorflow/tensorflow/contrib/makefile/downloads 
/tensorflow/tensorflow/contrib/makefile/downloads/eigen 
/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp 
/tensorflow/tensorflow/contrib/makefile/gen/protobuf-host/include 

주, TF의 REPO에서 contrib/makefile를 사용하여 구축.

tensorflow_cc을 직접 사용하는 것이 좋으므로이 모든 것을 수동으로 수행 할 필요가 없습니다.

관련 문제