TensorFlow source 빌드 방법

2020. 4. 14. 21:48Develop

 

텐서플로 internal source를 수정하고 컴파일하여 사용하고 싶은 경우엔 pip install을 통해서 설치하는 것이 아니라 source를 통해 빌드를 해서 사용해야 한다. https://www.tensorflow.org/install/source에 자세한 설명이 있지만 없는 내용을 포함해서 따로 정리를 해두려한다.

 

# bazel 설치파일 다운로드
$ wget https://github.com/bazelbuild/bazel/releases/download/2.0.0/bazel-2.0.0-installer-linux-x86_64.sh

# bazel 바이너리 파일이 설치될 폴더 생성
$ mkdir ~/bin
$ echo export PATH=$HOME/bin:$PATH >> .zshrc

# 패키지 종속성 설치
$ pip install -U --user pip six numpy==1.18.0 wheel setuptools mock 'future>=0.17.1'
$ pip install -U --user keras_applications --no-deps
$ pip install -U --user keras_preprocessing --no-deps

# 설치 파일 실행
$ bash ./bazel-2.0.0-installer-linux-x86_64.sh --user

$ git clone https://github.com/tensorflow/tensorflow.git
$ cd tensorflow
$ git checkout [원하는 브랜치]
$ ./configure     # 이후엔 원하는 옵션대로 y/n 선택

# 다음 옵션을 넣어줘야 처음부터 빌드하지 않고 이전 빌드 시점부터 빌드를 함
$ echo startup --max_idle_secs=0 >> .bazelrc

# whl 파일이 저장될 폴더 생성
$ mkdir ~/whls

$ bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package ~/whls
$ pip install ~/whls/tensorflow-*.whl
현재 numpy 최신 버전인 1.19.0이 제대로 지원되고 있지 않은 상황이므로 더 낮은 버전으로 설치를 진행해야 한다. (#40688)

 

 

Trouble Shooting

만약 빌드 중에 에러가 발생한다면 꼭 bazel clean 을 하고 다시 빌드를 하는 것이 좋다.

 

Bazel Version

아래 링크를 참고하여 빌드하려는 TensorFlow 버전에 맞는 bazel을 설치해야 한다.

 

소스에서 빌드  |  TensorFlow

소스에서 TensorFlow pip 패키지를 빌드하고 Ubuntu Linux 및 macOS에 설치합니다. 명령어는 다른 시스템에도 적용될 수 있지만, Ubuntu 및 macOS용으로만 테스트되었으며 지원됩니다. 참고: 잘 테스트되고

www.tensorflow.org