티스토리 뷰



"pip install"로 T
ensorFlow를 설치하는 경우, TensorBoard 실행 시 아래와 같은 에러메세지가 발생할 수 있다 (http://0.0.0.0:6006으로 접속해 보면 TensorBoard 로고는 나오지만 내용 없이 공백만 나온다). 이와 같은 경우 TensorBoard가 제대로 설치되지 않은 경우이니 TensorFlow 소스로부터 직접 TensorBoard를 빌드할 필요가 있다.

WARNING:tensorflow:IOError [Errno 2] No such file or directory: '/home/dwlee/.python_virtual_envs/py27/local/lib/python2.7/site-packages/tensorflow/tensorboard/TAG' on path /home/dwlee/.python_virtual_envs/py27/local/lib/python2.7/site-packages/tensorflow/tensorboard/TAG
WARNING:tensorflow:Unable to read TensorBoard tag
Starting TensorBoard  on port 6006
(You can navigate to http://0.0.0.0:6006)



운영체제: Ubuntu 14.04 LTS Trusty
TensorFlow 설치 모드: CPU or GPU
Python 환경: Python 2.7.6 (virtualenv 사용; 설치경로: ~/.python_virtual_envs/py27)



1. Java8 설치


1.1. webupd8team 이용 (참고:http://goo.gl/lnhe2H)


$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer


1.2. 위 방법이 안 되는 경우 직접 다운로드 받아 설치 (참고:http://goo.gl/UFZ5nR)

       오라클:http://goo.gl/Mw5Uy5



2. Bazel 설치 (Bazel은 Google이 개발한 빌드 툴)


2.1. Bazel 다운로드: https://github.com/bazelbuild/bazel/releases

2.2. Bazel 설치 (bazel); 아래와 같이 입력하면 ~/bin에 bash 스크립트가 설치되는데 (실제 실행파일은 ~/.bazel 디렉토리에 설치됨) 디렉토리 구조는 취향에 따라 적절하게 편집하면 좋다.


$ chmod +x bazel-version-installer-os.sh

$ ./bazel-version-installer-os.sh --user



3. TensorFlow 설치


3.1. TensorFlow 소스 다운로드 (git clone)


$ cd /home/dwlee/softwares

$ git clone -b master --recurse-submodules https://github.com/tensorflow/tensorflow.git


3.2 Swig 설치

TensorFlow 공식사이트에서는 python-numpy나 python-dev도 설치하라고 하는데 이미 설치돼 있는 경우 swig만 설치해도 될 것 같다 (참고: http://goo.gl/YNYvhL)


$ sudo apt-get install swig


3.3 Configure


위에서 받은 tensorflow git repository에 들어가서 ./configure를 실행한다.


Please specify the location of python. [Default is /home/dwlee/.python_virtual_envs/py27/bin/python]:

Do you wish to build TensorFlow with GPU support? [y/N] N  (GPU 버전의 경우 y 입력)

No GPU support will be enabled for TensorFlow

Configuration finished


3.4. Bazel로 빌드 (다소 오래 걸림: 나의 경우 약 10분 정도 소요)


tensorflow git 저장소 디렉토리 (i.e., 위에서 git clone으로 생성한 디렉토리) 내로 이동하여 아래와 같이 입력한다.


$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package


(GPU 버전의 경우)

$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package


(Python 3.x를 사용하는 경우 "Python.h" 헤더파일이 없다는 에러 메세지가 발생할 수 있는데 그런 경우 Python 3 개발 패키지를 설치하는 것이 해결책이 될 수 있다: $ sudo apt-get install libpython3-all-dev)



$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg


(GPU 버전의 경우)

$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg --use_gpu


(Python 3.x를 기반으로 virtualenv를 사용하는 경우 ctypes 패키지가 깨지는 현상이 발생할 수 있다. 이와 같은 경우 가상환경 bin의 python3와 python3.x 파일을 /usr/bin/python3과 /usr/bin/python3.x으로 교체해 주면 문제는 해결된다.)


$ pip install /tmp/tensorflow_pkg/<.whl 파일> 



※ Anaconda 이용 시, import tensorflow를 테스트 했을 때, CXXABI_x.x.x 등등 에러가 발생하는 경우 다음과 같이 해결할 수 있다.


CXXABI_x.x.x 정의가 있는지 확인하고, 해당 파일을 anaconda 라이브러리 디렉토리에 넣어준다.


$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI_1.3.8


$ cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/사용자아이디/anaconda/lib/libstdc++.so.6


출처: http://stackoverflow.com/a/39856855/4136588



3.5. TensorBoard 복사

(복사하기 싫은 경우 git 로컬 저장소에 있는 tensorboard 실행 스크립트를 PATH에 추가해서 사용해도 된다)


"<TENSORFLOW_GIT_HOME>/bazel-bin/tensorflow/tensorboard" 에 있는 tensorboard 실행 스크립트 파일과 관련 디렉토리를 복사


e.g.) 

실행 스크립트 파일

$ cp ~/softwares/tensorflow/bazel-bin/tensorflow/tensorboard/tensorboard ~/.python_virtual_envs/py27/bin/


실행에 필요한 디렉토리

$ cp -rf ~/softwares/tensorflow/bazel-bin/tensorflow/tensorboard/tensorboard.runfiles ~/.python_virtual_envs/py27/bin



3.6. TensorBoard 테스트


$ tensorboard --logdir=<log가 있는 디렉토리의 절대경로>




이제 에러메세지 없이 아래처럼 정상 작동하는 것을 볼 수 있다.







※ TensorBoard 사용법 참고: 









댓글